record logo record

목표

자바가 제공하는 제어문을 학습하세요.

학습할 것

제어문

제어문(control flow statements)은 프로그램의 흐름을 제어하는 경우에 사용하는 실행문으로, 조건문, 반복문, 분기문 등이 포함되어 있다.

제어문 종류 선택 제어 반복 제어 무조건 분기
제어문 if 문
if ~ else 문
if ~ else if ~ else 문
if ~ (if ~ else) ~ else 문
switch ~ case 문
for 문
while 문
do ~ while
goto 문
기타 제어문 break 문
continue 문
  return 문

선택문

if 문 은 주어진 조건이(isStudent)이 참인 경우 하위 블록 내용이 수행되는 구문입니다.

if (isStudent()) {
    ...
}

if ~ else 문 은 주어진 조건이(isStudent)이 참인 경우 if 블록 내용이 수행되고 거짓인 경우 else 블록이 수행되는 구문입니다.

if (isStudent()) {
    ...
} else {
    ...
}

if ~ else if ~ else 문 은 다중 조건을 검사할 수 있는 구문으로 최상위 if 의 조건 부터 차례로 위에서 아래로 검사하고 참인 경우 해당 블록이 수행되고 종료합니다. 만약 참인 조건이 존재하지 않는다면 else 블록을 수행하고 종료합니다.

if (isStudent()) {
    ...
} else if (isTeacher()) {
    ...
} else {
    ...
}

if ~ (if ~ else) ~ else 문 은 내부에 중첩된 구조로 외부에 존재하는 if (isStudent())의 조건이 참인 경우 해당 구문의 블록의 if (isJunior()) 구문을 수행합니다.

if (isStudent()) {
    if (isJunior()) {
        ...
    } else {
        ...
    }
} else {
    ...
}

switch ~ case 문 주어진 조건식의 값에 따라 여러 개의 명령문 중에서 어느 특정한 명령문만을 실행 하고자 할 때 사용하는 구문입니다.

switch(grade) {
    case "A":
        ...
        break;
    case "B":
        ...
        break;
    case "C":
        ...
        break;
    case "D":
        ...
        break;
    default:
        break;
}

반복문

반복 제어문은 주어진 조건식의 값을 만족하는 동안 일정한 범위 내의 명령문들을 반복적으로 실행하는 명령문으로 for 문 while 문 do ~ while 문이 있습니다.

for 문

for (초기값; 조건식; 증감값) {
    반복할 명령문
}

for (int count = 0; count < 10; count++) {
    System.out.println(count);
}

while 문조건식을 평가하여 조건이 참인 경우에만 반복 실행하고, 조건이 거짓이면 while 문 다음 명령문을 실행합니다(반복문 종료). while 문은 조건이 거짓일 경우 반복할 명령문들을 한 번도 실행하지 않는다.

while(조건식) {
    ...
}

do ~ while 문 은 while 문과 달리 최소 한 번은 반복문을 수행하고 이후 조건식을 평가하여 다음 반복문을 수행할지를 결정합니다.

do {
    ...
} while(조건식)

기타

break 문 은 반복문 내부에서 외부로 벗어나도록 하여 다음 명령문을 수행하도록 하는 명령문입니다.

for (Student student : students) {
    if (student.isJunior()) {
        break;
    } else {
        System.out.printf("student %s is not junior\n", student.name());
    }
}
//break 이후 수행
System.out.println("bye");

continue 문 은 반복문 내부에서 일시적으로 일부 명령문을 수행하지 않도록 하는 명령문입니다. (continue 명령문이 수행되면 해당 명령문 이후 부터 반복문 끝까지의 명령문들은 수행되지 않습니다.)

for (Student student : students) {
    if (student.isJunior()) {
        continue;
    }
    System.out.printf("If %s is junior this message not print\n", student.name());
}

과제 (옵션)

livestudy project

과제 0. JUnit 5 학습하세요.

과제 1. live-study 대시 보드를 만드는 코드를 작성하세요.

과제 2. LinkedList를 구현하세요.

과제 3. Stack을 구현하세요.

과제 4. 앞서 만든 ListNode를 사용해서 Stack을 구현하세요.

과제 5. Queue를 구현하세요.

References