if (조건식1) {
처리내용1
} else if (조건식2){
처리내용2
} else {
처리내용3
}
if
조건이 참이면 중괄호{}
안 코드 실행
else
는 위 조건들이 모두 거짓일 경우 실행
int score = 70;
char grade;
if (score <= 100 && score >= 90) {
grade = 'A';
} else if (score >= 70) {
grade = 'B';
} else if (score >= 50) {
grade = 'C';
} else if (score >= 0) {
grade = 'D';
} else {
grade = 'X';
System.out.println("잘못된 점수입니다.");
}
System.out.printf("score: %d, grade: %s", score, grade);
switch (변수) {
case 값1:
처리내용1
break;
default:
처리내용2
}
동작 방식
변수와 값이 일치하면
:
다음 코드 실행
일치하는 값이 없으면default
코드 실행
break
로 switch문을 빠져나오지 않으면, 아래 코드들이 모두 실행됨
특징
int score = 70;
char grade;
switch (score/10) {
case 10:case 9:
grade = 'A';
break;
case 8:case 7:
grade = 'B';
break;
case 6:case 5:
grade = 'C';
break;
case 4:case 3:case 2:case 1:case 0:
grade = 'D';
break;
default:
grade = 'X';
System.out.println("잘못된 점수입니다.");
}
System.out.printf("score: %d, grade: %s", score, grade);
for (초기화; 조건식; 연산식) {
처리내용
}
조건식이 참인 동안
{}
안의 내용과 연산식이 반복 실행됨
int array[] = {2, 3, 4, 5, 6, 7};
for (int i = 0; i < array.length; i++) {
if (array[i] % 2 == 1) {
System.out.println("홀수 " + array[i] + "를 찾았습니다.");
}
}
for (타입 변수: 순환할 객체) {
처리내용
}
순환할 객체의 크기만큼
{}
안의 내용이 반복 실행됨
로컬 변수를 사용하여, 객체의 요소에 순차적으로 접근할 수 있음
String[] numbers = {"one", "two", "three"};
for (String num: numbers) {
System.out.println(num);
}
while (조건식) {
처리내용
연산식
}
조건식이 참인 동안
{}
안의 내용이 반복 실행됨
int i = 0;
while (i < 5) {
System.out.println("무한루프에 빠지지 않게 조심!");
i++;
}
do {
처리내용
연산식
} while (조건식);
일단
do{}
안의 코드를 실행한 후,
조건식이 참인 동안{}
안의 내용이 반복 실행됨
(while문과 달리 적어도 한 번은 실행됨)
int i = 5;
do {
System.out.println("do");
i++;
} while (i < 5);
: 반복문의 흐름을 바꾸는 구문
: 반복문 탈출
boolean b = false;
for (int i = 0; i < 10; i++) {
System.out.println("i = " + i);
for (int j = 0; j < 3; j++) {
System.out.println(j);
if (i == 2 && j == 1) {
b = true;
break;
}
}
if (b) {
break;
}
}
all:for (int i = 0; i < 10; i++) {
System.out.println("i = " + i);
for (int j = 0; j < 3; j++) {
System.out.println(j);
if (i == 2 && j == 1) {
break all; // 모든 반복문 탈출
}
}
}
: skip 후 조건식으로 가서 다시 반복
Scanner sc = new Scanner(System.in);
int num;
int numArr[] = new int[5];
int w = 0;
while (w < 5) {
// 배열 요소 입력받기
System.out.printf("numArr[%s] = ", w);
num = sc.nextInt();
// 0이하 입력 시
if (num <= 0) {
System.out.println("양수를 입력하세요.");
continue;
}
// num이 0이하이면 skip
numArr[w] = num;
w++;
}
System.out.println(Arrays.toString(numArr)); // 배열 출력