if (조건식) { (조건식이 참일때 수행될 문장) }
ch=='y' || ch=='Y' //문자 ch가 'y' 또는 'Y'일 때
ch==' ' || ch=='\t' || ch=='\n' //문자 ch가 공백이거나 탭 또는 개행문자일 때
'0'<=ch && ch<='9' //문자 ch가 숫자일 때
: 어느 한 쪽이 참이면 다른 한 쪽이 거짓인 상반된 관계일 때
조건식의 결과가 거짓일 때 else블럭 수행
if (조건식) { (조건식이 참일때 수행될 문장들)
} else { (조건식이 거짓일때 수행될 문장들) }
if (input==0) {
System.out.println("0입니다.");
} else {
System.out.println("0이 아닙니다.");
}
: 조건식이 여러개 (처리해야 할 경우의 수가 셋 이상일 때)
if (조건식1) { (조건식1이 참일때 수행될 문장들)
} else if (조건식2) { (조건식2가 참일때 수행될 문장들)
} else if (조건식3) { (조건식3이 참일때 수행될 문장들)
} else { (어느 조건식도 만족하지 않을 때 수행될 문장들) } (else블럭은 생략 가능)
if (score>=90) {
grade = 'A';
} else if (score>=80) {
grade = 'B';
} else if (score>=70) {
grade = 'C';
} else {
grade = 'D';
}
System.out.println ("당신의 학점은 "+grade+"입니다.");
: if문의 블럭 내에 또 다른 if문을 포함시키는 것 (횟수 제한 없음)
if (조건식1) { (조건식1이 참일때 수행될 문장들)
if (조건식2) { (조건식1,2가 모두 참일때 수행될 문장들)
} else { (조건식1이 참, 2가 거짓일때 수행될 문장들)
}
} else { (조건식1이 거짓일때 수행될 문장들) }
if (num>=o) {
if (num!=0) {
sign = '+';
} else {
sign = '-';
}
}
: 처리해야 하는 경우의 수가 많을 때 유용한 조건문
단 하나의 조건식으로 많은 경우의 수를 처리할 수 있고, 표현도 간결하므로 알아보기 쉬움!
1) 조건식을 계산한다.
2) 조건식의 결과와 일치하는 case문으로 이동한다.
3) 이후의 문장들을 수행한다.
4) break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나간다. (break문이 없으면 case문 사이의 구분이 없어지므로 잊지 말아야 함.)
5) 어느것도 일치하는 case문이 없으면 default.
switch(month) {
case 3: case 4: case 5:
System.out.println("현재의 계절은 봄입니다.");
break;
case 6: case 7: case 8:
System.out.println("현재의 계절은 여름입니다.");
break;
case 9: case 10: case 11:
System.out.println("현재의 계절은 가을입니다.");
break;
default:
System.out.println("현재의 계절은 겨울입니다.");
}
1) switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
2) case문의 값은 정수 상수(문자 포함), 문자열만 가능하며, 중복되지 않아야 한다.
int num, result;
final int ONE = 1;
switch(result) {
case '1': //문자 리터럴
case ONE: // 정수 상수
case "YES": // 문자열 리터럴
case num: //에러. 변수 불가
case 1.0: //에러. 실수도 불가
switch > if-else : 조건 3개 이상일때 switch문이 더 낫다.
if-else > switch : 어떤 조건이 일어날 경우가 50-80%이면 if-else문을 쓰는 것이 더 낫다.
// 1~3 사이의 정수 구하기
// 1) 각 변에 3을 곱한다.
0.0*3 <= Math.random() *3 < 1.0*3
// 2) 각 변을 int형으로 변환한다.
(int)0.0 <= (int)(Math.random()*3) < (int)3.0
// 3) 각 변에 1을 더한다.
(int)0+1 <= (int)(Math.random()*3) < (int)3+1
1 <= (int)(Math.random()*3) < 4