조건문 : 조건을 만족할때만 코드를 수행 (0~1번)
반복문 : 조건을 만족하는 동안 코드를 수행 (0~n번)
if (조건식) {
조건식의 결과가 참일 때 실행하고자 하는 명령문;
} else if (조건식2){
조건식2의 결과가 거짓일 때 실행하고자 하는 명령문;
} else if (조건식3){
조건식3의 결과가 거짓일 때 실행하고자 하는 명령문;
} else {
어느 조건식도 만족하지 않을 때 실행되는 명령문;
}
// 중첩 if문 예제
if (true) {
System.out.println("Hello");
if (true) {
System.out.println("World");
}
}
조건식이 참일 때 블럭 안의 코드를 수행한다
else는 조건이 거짓일 때 블럭 안의 코드를 수행하며 생략할 수 있다
if문은 중첩이 가능하다
if ~ else / if ~ else if ~ else를 이용하여 중첩되는 조건식을 더 간결하게 쓸 수 있다
switch (조건 값) {
case 값1:
조건 값이 값1일 때 실행하고자 하는 명령문;
break; // switch문 탈출
case 값2:
조건 값이 값2일 때 실행하고자 하는 명령문;
break;
...
default:
조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 명령문;
break;
}
처리해야 하는 경우의 수가 많을 때 유용한 조건문
for (초기식; 조건식; 증감식) {
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
}
// 중첩 for문 예제
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.println(i + "*" + j + "=" + (i * j));
}
System.out.println(); // 구구단 출력
}
조건을 만족하는 동안 블럭을 반복하며 반복횟수를 알 때 적합한 반복문
for문 또한 중첩으로 사용할 수 있다
while (조건식) {
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
}
// do while문
do {
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
} while (조건식);
// 예제
do {
System.out.println("do / while 문이 " + i + "번째 반복 실행중입니다");
j++; // 이 부분을 삭제하면 무한 루프에 빠지게 됨
} while (j < 1);
조건을 만족하는 동안 블럭을 반복하며 반복횟수를 모를 때 적합한 반복문
블럭 내부에 따로 조건식에 변화를 주는 코드가 없으면 무한루프에 빠지게 된다
조건식의 결과가 어느 순간 거짓을 갖도록 조건식의 결과를 변경하는 명령문을 반드시 포함해야 한다
do while문은 조건식에 상관없이 무조건 한 번은 명령을 실행한다
// continue
for (int i = 1; i <= 100; i++) {
if (i % 5 == 0 || i % 7 == 0) {
System.out.println(i);
} else {
continue;
}
}
// break
int num = 1, sum = 0;
while (true) { // 무한 루프
sum += num;
if (num == 100) {
break; // 루프 탈출
}
num++;
}
System.out.println(sum);
// 이름붙은 반복문 label
allLoop : for (int i = 2; i < 10; i++) {
for (int j = 2; j < 10; j++) {
if (i == 5) {
break allLoop; // 라벨명이 붙은 반복문을 탈출
}
System.out.println(i + " * " + j + " = " + (i * j));
}
}