제어문은 실행의 수행 순서를 변경
if ( 조건식 ) {
조건식이 true 인 경우 실행
} else {
조건식이 false 인 경우 실행
}
---------------------------------------------
if ( 조건식 )
조건식이 true 인 경우 실행; // 근데 왠만하면 쓰는게 가독성에 좋지 않나...?
if( 조건식 ) {
실행문들
} else if ( 조건식 ) {
실행문들
} else if ( 조건식 ) {
실행문들
} else {
실행문들
}
public static void main(String[] args) {
int num = 1;
boolean serch = false;
int flag = 0;
while (num < 100000) {
if ((num % 5) == 0 && (num % 7) == 0) {
System.out.println(num);
flag++;
if (flag == 4) {
break;
}
}
num++;
}
System.out.println("반복 횟수 : " + num);
}
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
switch문은 0개 이상의 case 레이블을 포함되어야 한다. 필요에 따라 1개의 default 레이블도 포함할 수 있다.
개선된 switch문은 화살표 case 레이블로 다음 case 레이블로 이동하지 않는다.
yield 예약어는 값을 반환하면서 switch 연산식을 종료하므로 yield 문 뒤에 break 문은 필요 없다.
public static void main(String[] args) {
whoIsIt("호랑이");
whoIsIt("참새");
whoIsIt("고등어");
whoIsIt("곰팡이");
whoIsItt("호랑이");
}
static void whoIsIt(String bio) {
String kind = "";
switch (bio) {
case "호랑이":
case "사자":
kind = "포유류";
break;
case "독수리":
case "참새":
kind = "조류";
break;
case "고등어":
case "연어":
kind = "어류";
break;
default:
System.out.println("어이쿠!");
kind = "...";
break;
}
System.out.printf("%s는 %s이다.\n", bio, kind);
}
String kind = switch (bio) {
case "호랑이", "사자" -> kind = "포유류";
case "독수리", "참새" -> kind = "조류";
case "고등어", "연어" -> kind = "어류";
default -> {
System.out.print("어이쿠! ");
yield "...";
}
};
System.out.printf("%s는 %s이다.\n", bio, kind);