티스토리 뷰

JAVA

[Java Study 04] 제어문

DevBee 2021. 4. 14. 15:10

Java에서는 프로그램의 순서를 제어하거나 수행 횟수를 결정하는 등의 기능을 하는 제어문을 제공합니다.

 

 


선택문

선택문은 if 문과 switch 문이 있습니다.

 

- if 문

if (조건식) {
    조건이 참일 때 실행할 내용
}

if (조건식) {
    조건이 참일 때 실행할 내용
} else {
    조건이 거짓일 때 실행할 내용
}

if (조건1) {
    조건1이 참일 때 실행할 내용
} else if (조건2) {
    조선1은 거짓이지만 조건2가 참일 때 실행할 내용
} else {
    조건1, 조건2가 모두 거짓일 때 실행할 내용
}

 

- switch 문

변수에 대해 평가하고 이를 분기할 수 있습니다. 평가 당하는 변수는 기본 타입(primitive type) 또는 Enum, String, Wrapper 클래스도 가능합니다.

switch (변수) {
    case 값A:
        변수가 값A일 때 수행할 내용;
        break;
    case 값B:
        변수가 값B일 때 수행할 내용;
        break;
    default:
        변수가 값A도 아니고 값B도 아닐 떄 수행할 내용;
        break;
}

break; 를 빼먹을 경우 다른 케이스의 break;를 만날 때까지 다른 case의 내용도 수행하게 됩니다.

 

 


반복문

반복문은 for 문과 while 문이 있습니다. 어떤 코드를 반복적으로 수행하고 싶을 때 사용됩니다.

 

- for 문

설정된 조건에 만족하는 동안 지정된 블록이 계속 반복 수행됩니다.

for (초기값; 조건식; 증감식) {
    반복 수행할 코드
}

// 예제
for (int i = 0; i < 10; i++) {
    System.out.print(i + " ");
}

// 결과
// 0 1 2 3 4 5 6 7 8 9

````````````````````````````````````

for (타입 변수명 : 배열, 컬렉션) {
    반복 수행할 코드
}

// 예제
String[] days = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
for (String day : days) {
    System.out.print(day + " ");
}

// 결과
// SUN MON TUE WED THU FRI SAT

 

- while 문

특정 조건이 참인 경우에 지정된 블록이 계속 반복 수행됩니다.

while (조건식) {
    조건식이 참일 떄 반복 수행할 내용
}

do {
    우선 한번 실행 후,
    조건식이 참일 때 반복 수행될 내용
} while (조건식)

 

 


분기문

조건문에서 의도에 의해 중간 흐름을 변경할 수 있는 구문입니다.

 

- break

조건을 확인하여 참인 경우 반복(라벨링이 되어 있지 않은 경우 가장 가까운 반복만)을 종료하는 역할

for (int i = 1; i < 10; i++) {
    if (i > 5) break;
    System.out.print(i + " ");
}

// 결과
// 1 2 3 4 5

int[][] nums = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int findNum = 5;
search:
for (int i = 0; i < nums.length; i++) {
    for (int j = 0; j < nums[i].length; j++) {
        if (nums[i][j] == findNum) break search;
        System.out.print(nums[i][j]);
    }
    System.out.println();
}

// 결과
// 123
// 4

 

- continue

조건을 확인하여 참인 경우 다음 코드를 수행하지 않고 바로 다음 조건을 확인

for (int i = 1; i < 10; i++) {
    if (i == 5) continue;
    System.out.print(i + " ");
}

// 결과
// 1 2 3 4 6 7 8 9 

int[][] nums = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int findNum = 5;
search:
for (int i = 0; i < nums.length; i++) {
    for (int j = 0; j < nums[i].length; j++) {
        if (nums[i][j] == findNum) continue search;
        System.out.print(nums[i][j]);
    }
    System.out.println();
}

// 결과
// 123
// 4
// 789

 

- return

현재 메소드를 종료하고 메소드를 호출한 위치로 이동

public static void main(String[] args) {
    int aliceAge = getAge("Alice");
    System.out.println(aliceAge);
    
    int otherAge = getAge("Bob");
    System.out.println(otherAge);
}

private static int getAge(String name) {
    if ("Alice".equals(name)) return 20;
    
    System.out.println("Alice가 아닙니다.");
    return 0;
}

// 결과
// 20
// Alice가 아닙니다.
// 0
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함