조건식 | 조건식이 참일 조건 |
---|---|
90 <= x && x <= 10 | 정수 x가 90 이상 100 이하일때 |
x < 0 || x > 100 | 정수 x가 0보다 작거나 100보다 클 때 |
x % 3 == 0 && x % 2 != 0 | 정수 x가 3의 배수지만, 2의 배수는 아닐 때 |
ch == 'y' || ch == 'Y' | 문자 ch가 'y' 또는 'Y'일 때 |
ch == ' ' || ch == '\t' || ch == '\n" | 문자 ch가 공백이거나 탭 또는 개행 문자일 때 |
str.equals("yes") | 문자열 str의 내용이 "yes"일 때(대소문자 구분) |
str.equalsIgnoreCase("yes") | 문자열 str의 내용이 "yes"일 때 (대소문자 구분 안함) |
if (조건식1) {
// 조건식1이 참(true)일 때 수행될 문장들을 적는다.
} else if (조건식2) {
// 조건식2이 거참(true)일 때 수행될 문장들을 적는다.
} else {
// 위의 어느 조건식도 만족하지 않을때 수행될 문장들을 적는다.
}
import java.util.Scanner;
class Ex4_4 {
public static void main(String[] args) {
int score = 0;
char grade = ' ';
System.out.print("점수를 입력하세요.>");
Scanner scanner = new Scanner(System.in);
score = scanner.nextInt();
if (score >= 90) {
grade = 'A';
} else if (score >= 80) {
garde = 'B';
} else if (score >= 70) {
garde = 'C';
} else {
garde = 'D';
}
System.out.println("당신의 학점은 " + grade + "입니다.");
}
}
RUN
점수를 입력하세요.>
80
당신의 학점은 B입니다.
if (num >= 0)
if (num != 0)
sign = '+';
else
sign = '-';
↓
if (num >= 0) {
if (num != 0) {
sign = '+';
} else {
sign = '-';
}
}
switch (조건식) {
case 값1 :
// 조건식의 결과가 값1과 같을 경우 수행될 문장들
//...
break;
case 값2 :
// 조건식의 결과가 값2과 같을 경우 수행될 문장들
//...
break; // switch문을 벗어난다.
default :
// 조건식의 결과와 일치하는 case문이 없을때 수행될 문장들
//...
}
switch 문의 조건식 결과는 정수 또는 문자열이어야 한다.
case문의 값은 정수 상수(문자 포함), 문자열만 가능하며, 중복되지 않아야 한다. ( 변수는 안된다.)
int num, result;
final int ONE = 1;
...
switch(result) {
case '1': // OK. 문자 리터럴
case ONE: // OK. 정수 상수
case "YES": // OK. 문자열 리터럴. JDK 1.7부터 허용
case num: // 에러. 변수
case 1.0: // 에러. 실수
...
}
switch 문은 break를 쓰지 않으면 밑의 case까지 전부 실행한다.
아래 경우를 보면 score에 1을 입력하면 case1을 들어가고 break가 없어 그냥 밑의 문장으 전부 실행하는 모습을 볼 수 있다.
그래서 switch문에서 break;는 거의 필연적이라고 볼 수 있다. 조건과 상관없이 전부 실행하기 때문이다.
import java.util.*;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
int score = 0;
char grade = ' ';
System.out.println("점수를 입력하세요.>");
Scanner scanner = new Scanner(System.in);
score = scanner.nextInt();
switch(score) {
case 1:
System.out.println("aaa");
case 2:
System.out.println("abc");
}
System.out.println("당신의 학점은 " + grade + "입니다.");
}
}
RUN
점수를 입력하세요.>
1
aaa
abc
당신의 학점은 입니다.