Java/Java

Java - Java 조건문과 반복문

Dlise 2023. 2. 10. 16:06

Java 조건문과 반복문에 대해 알아보자

 

if문

if

if문은 조건문 중 하나로 아래의 형태로 사용한다.

if(조건식) {
   ...
}

만약 중괄호 내에 들어갈 코드가 한 문장이라면 중괄호를 생략할 수 있다.

if(조건식) ...

이때, 조건식은 결과가 true 혹은 false이어야 하며, false면 중괄호 안의 코드가 실행되지 않는다.

 

 

if-else

true일 때와 false일 때를 구분해 동작시키고자 한다면 if-else문을 사용한다.

if(조건식) {
...
} else {
...
}

만약 조건식이 true이면 위, false이면 아래 중괄호의 코드를 실행한다.

 

 

else if

조건식을 여러 개 사용하고자 한다면 else if를 사용한다.

if(조건식) {
...
} else if(조건식) {
...
} else if(조건식) {
...
} else {
...
}

위부터 차례대로 조건식이 true인지 확인하며 내려온다. 

 

조건식을 확인하면서 "Hello world_3"을 출력했음을 알 수 있다.

 

중첩 if

if문 안에 if문을 사용할 수 있다.

if(조건식) {
    if(조건식) {
        ...
    } else {
        ...
    }
}

중첩은 여러 번 할 수 있으며, 이럴 땐 헷갈리지 않게 들여 쓰기와 괄호 사용을 꼭 해주는 것이 좋다.

 

간단한 if문은 삼항 연산자로 바꿀 수 있는지 고려해 보는 것도 좋다.(코드가 간결해지므로)

 

 

switch문

switch문은 if문과 같은 조건문이며 사용 방법은 아래와 같다.

switch(조건식) {
    case 값1:
        ...
        break;
    case 값2:
        ...
        break;
    case 값3:
        ...
        break;
    default:
        ...
}

switch문의 조건식은 if문과 달리 int형 범위의 정수값을 허용하며 case 값은 변수를 사용할 수 없다.

맞는 값이 없으면 default를 실행한다.

 

조건식과 case 값이 같으면 다음 코드를 실행하는 형태이다.

이때, 각 case의 마지막에 break문을 적는데, 조건식이나 반복문을 빠져나오는 역할을 한다.

 

만약 break문을 적지 않으면 아래 case의 코드도 실행한다.

아래 코드는 break문을 적지 않았을 때인데, case 2에 들어가 default까지 실행한 모습이다.

단, break문을 꼭 사용할 필요는 없다. 경우에 맞게 사용하면 된다.

 

 

for문

for문은 반복문이다. 이름 그대로 작업을 반복해야 할 때 사용한다. 형태는 아래와 같다.

for(초기화; 조건식; 증감식) {
    ...
}

초기화는 변수 등을 초기화,

조건식은 for문을 동작시킬 것인지에 대한 true, false,

증감식은 값을 증감하는 역할이다.

 

각 부분은 for( ; ; )와 같이 생략할 수 있다. 만약 조건식이 비어있으면 true로 간주해 계속 동작한다.

 

for문을 처음 접하면

1. 초기화  >  2. 조건식 > 3. 괄호 안 코드 > 4. 증감식

순으로 진행되며 4를 수행한 후 다시 2부터 시작한다. 

만약 조건식이 false가 되면 for문을 빠져나온다.

 

 

아래 for문을 보면

1. int i = 0을 초기화

2. 조건식 확인

3. true이므로 System.out.println(i); 실행

4. 증감식 (i가 1 증가)

5. ...

순으로 실행된다.

결과는 아래와 같으며 i++로 i==5가 되었기 때문에 조건식이 false가 되어 for문이 끝난 것이다.

 

중첩 for문

for문도 if문처럼 중첩이 가능하다.

for(int i = 0 ; i < 5; i++) {
    for(int  j = 0; j < 5; j++) {
        ...
    }
}

위 코드는 5*5 = 25번 실행된다.

 

여러 번 중첩 for문을 사용하는 것은 구현은 쉽지만 계산이 많이 느려질 수 있기 때문에 지양하는 것이 좋다.

 

 

while문

while문은 반복문으로 형태는 아래와 같다.

while(조건식) {
    ...
}

처음 while문을 만나면 조건식을 확인한 후 true면 코드를 실행, false가 될 때까지 동작한다.

만약 조건식이 처음부터 false면 코드를 실행하지 않고 그냥 넘어간다.

 

아래 코드는 동작하다가  i가 5가 되어 빠져나온 모습이다.

 

do-while문

while문과 살짝 다른 반복문으로 형태는 아래와 같다.

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

do-while문은 while문과 다르게 무조건 1번은 코드를 실행한다.

이후 조건식을 확인해 false일 때까지 반복한다.

 

 

while문과 do-while문은 해당 코드를 break문으로 빠져나오게 구현하는 경우가 많다.

 

 

이름이 있는 반복문

반복문을 중첩해 사용할 때 반복문에 이름을 붙임으로써 break문을 보다 효율적으로 사용할 수 있다.

형태는 아래와 같다.

name1 : for( ; ; ) {
    for( ; ; ) {
        ...
        break name1;
    }
}

 

이렇게 보면 잘 와닿지 않으니 바로 코드로 보자.

아래 코드는 외부 for문에 loop1이라는 이름을 붙인 모습이다.

내부 for문에서 j가 3일 땐 그냥 break문을, i와 j가 둘 다 2일 땐 break loop1;을 하도록 했다.

결과는 아래와 같다. j가 3일 때 break문을 통해 i가 2로 되었고,

이후 i와 j가 2로 되어 break loop1을 실행해 외부 for문을 나와버렸다.

이름을 붙여 사용하는 것은 continue문에도 사용할 수 있다.

이름은 변수 명명 규칙을 따른다.