조건문(Conditional)

if 문

int a = 1;
int b = 100;

if (a == b) {
    System.out.println("a == b");
} else if (a < b) {
    System.out.println("a < b");
} else if (a <= b) {
    System.out.println("a <= b");
} else {
    System.out.println("else");
} // a < b

if가 참일 때, 코드를 실행한다. if가 거짓이라면 else를 실행한다.

조건을 여러 개 하고 싶다면 else if를 사용한다. 다중 조건문일 경우, 조건을 만족하는 다른 조건문이 있어도 최초의 분기만 실행한다.

 

switch 문

int a = 10;

switch (a + 1) {

    case 9:
        System.out.println("a + 1 == 9");
    case 10:
        System.out.println("a + 1 == 10");
    case 11:
        System.out.println("a + 1 == 11");;
}

switch의 값이 일치하는 case인 "a + 1 == 11"가 출력된다. 그렇다면 거꾸로 나열하면 어떻게 될까?

int a = 10;

switch (a + 1) {

    case 11:
        System.out.println("a + 1 == 11");
    case 10:
        System.out.println("a + 1 == 10");
    case 9:
        System.out.println("a + 1 == 9");;
}

황당하게도 "a + 1 == 11", "a + 1 == 10", "a + 1 == 9" 모두 출력된다. case 같은 경우에는 조건을 만족했다고 조건문을 끝내지 않는다. 조건을 끝내고 싶다면 아래처럼 break라는 키워드를 작성해야 빠져나갈 수 있다.

int a = 10;

switch (a + 1) {

    case 11:
        System.out.println("a + 1 == 11");
        break;
    case 10:
        System.out.println("a + 1 == 10");
        break;
    case 9:
        System.out.println("a + 1 == 9");
         break;
    default:
        System.out.println("default");
}

default는 모든 case에 만족하지 않을 경우 실행되는 코드이다.

 

 

반복문(Loops)

어떠한 작업을 반복적으로 수행할 수 있도록 하는 형식

 

for 문

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

for 문을 만들려면 괄호( ) 안에 먼저 int 형태의 초기화된 변수를 만들어준다. 그리고 변수의 범위를 정해준다. 조건식이 없으면 반복문이 계속 수행되어 무한루프에 빠지게 된다. i가 1씩 늘어나도록 ++ 증감식을 붙여준다. 이렇게하면 i가 10보다 작을 때까지 1씩 커지며 반복한다.

즉, 정리하면 for 문에는 초기화된 변수, 조건식, 증감식이 있어야한다.

 

while 문, do-while 문

int b = 10;

while (b > 0) {
System.out.println(b);
b--;
}

for 문은 초기화된 변수를 내부에서 만들지만 while 문은 보통 외부에서 만든다.

int b = 0;

do {
	System.out.println(b);
    b--;
} while (b > 0);

do-while 문은 일단 do로 조건없이 실행을 시킨 뒤, 중괄호{} 뒤에 while을 붙여 실행한다. do-while 문은 while 문과 다르게 먼저 실행 후, 조건문을 반복한다. 즉, while 문에 있는 조건과 무관하게 최초 한 번은 무조건 실행하는 반복문이다.

 

 

'Back-End > Java' 카테고리의 다른 글

함수  (0) 2023.05.15
자료구조 - 배열, 리스트, 맵  (0) 2023.05.12
연산자  (0) 2023.05.10
콘솔 입출력  (0) 2023.05.09
String 문자열  (2) 2023.05.09

+ Recent posts