☕Java

Java 반복문 마스터하기: 초보자도 쉽게 이해하는 for, while, do-while

itstory(Booho) 2024. 12. 8. 15:38
728x90

반복문이란? 

  반복문은 특정 조건이 만족될 때까지 같은 코드를 계속 실행하는 명령어 입니다.

  예를 들어, "안녕하세요"를 100번 말해야 한다고 하면, 힘들겠죠?

  하지만 컴퓨터는 반복문을 사용해 이런 일을 순식간에 해낼 수 있습니다. 


자바에는 세 가지 주요 반복문이 있습니다.

바로, for, while, do-while

 

자바의 for문은 특정 조건이 만족되는 동안 코드 블록을 반복 실행하는 제어문입니다.

for문의 기본 구조는 다음과 같습니다.

for (초기화; 조건식; 증감식) {
    // 반복 실행할 코드
}

 

for문의 주요 구성 요소는 다음과 같습니다
  초기화 : 반복문에 사용될 변수를 초기화합니다. 이 부분은 반복문이 시작될 때 한 번만 실행됩니다.
  조건식 : 각 반복 시작 시 평가되며, 조건이 참인 동안 반복이 계속됩니다. 조건이 거짓이 되면 반복문을 종료합니다.
  증감식 : 각 반복이 끝날 때마다 실행되며, 주로 반복 제어 변수의 값을 변경합니다.

 

실습 1 : 1부터 9까지 출력해보자

public class Test {
    public static void main(String[] args) {
        for ( int i = 0 ; i < 10 ; i= i+1) {
            // i 를 0으로 정한다
            // i 가 10보다 작은가?
            // i는 i + 1이다.
            System.out.println(i);
        }
    }
}

  위의 예제를 보면, for문에서 i=0으로 선언 및 초기화를 하며,

  조건식이 i<10로 i가 0~9일 때까지 총 10번 반복하게된다. 출력 결과로는 "증감된 i 값이 출력된다.

 

 

실습 2 : 10보다 작은 짝수값만 출력 해보자

public class Test {
    public static void main(String[] args) {
        for ( int i = 0 ; i < 10 ; i= i+2) {
            // i 를 0으로 정한다
            // i 가 10보다 작은가?
            // i는 i + 2이다.
            System.out.println(i);
        }
    }
}

  위의 예제를 보면, for문에서 i=0로 선언 및 초기화를 하며, 조건식이 i<10 으로 i가 2~10일 때까지 총 5번 반복하게된다.

  (왜냐하면 증감식에서 i가 2씩 증가되므로 i=0, 2, 4, 6, 8이 된다.)

 

실습 3 : 1부터 100까지 모든 값을 다 더한 값은?

public class Test {
    public static void main(String[] args) {
        int total = 0;
        for ( int i = 1 ; i <= 100 ; i= i+1) {
            System.out.println(i);
            // total 은 0으로 정한다
            // i 를 1로 정한다
            // i 가 100보다 작은가?
            // i를 보여준다
            // total은 total+i 이다.
            // total값을 보여준다.
            // i는 i + 1이다.
            // i 가 100보다 작은가?
            // i를 보여준다
            // total은 total+i 이다.
            // total값을 보여준다.
            total = total + i;
            System.out.println(total);
        }
    }
}

 

 

실습 4 : 3의 배수에는 짝! 이라고 출력하고, 나머지는 숫자를 출력 해라

public class Test {
    public static void main(String[] args) {
        for (int i =1; i<10 ;i++) {
            if (i % 3 == 0) {
                // 자바에서 % 기호는 산술 연산자로 사용되며,
                // 나눗셈의 나머지를 구합니다
                // 예) 10 나누기 3한 후 남는 숫자는 1
                // 9나누기 3을 할 경우 남는 숫자 없음( 0 )
                System.out.println("짝!");
                // 남는 숫자가 없는 경우 ( 0일때) 짝!
            } else {
                System.out.println(i);
                // 남는 숫자가 있을경우 i 로 표시
            }
        }
    }
}

 

 

자바의 while문은 특정 조건이 참인 동안 코드 블록을 반복해서 실행하는 제어문입니다. 

아주 간단히 설명하자면, "~하는 동안 ~를 계속해"라고 생각하면 됩니다.

while문의 기본 구조는 다음과 같습니다

while (조건식) {
    // 반복할 코드
}

작동 방식
  먼저 조건식을 검사합니다.
  조건이 참(true)이면 코드 블록을 실행합니다.
  코드 블록 실행이 끝나면 다시 조건식으로 돌아가 검사합니다.
  조건이 거짓(false)이 될 때까지 2-3 과정을 반복합니다.

public class LoopTest {
    public static void main(String[] args) {
//        반복문 와일
//        3
//        4
//        5

           int i = 1;    //← 1을 I 라고 칭한다
           while (i < 6){   // ← 'while' 반복 해라 (i < 6) 이 조건이 거짓일 때 까지 1이 6보다 작냐?
               System.out.println(i); // ← 질문에 답이 맞으면 i를 보여줘라
               i = i + 1 ; // ← 보여준 i 에 1을 더한 갑을 아이로 저장 하고  while (i < 6){ 이동 해서 실행해라
                    }


    }
}

이 코드는 i가 6 이하인 동안 계속해서 i를 출력하고 1씩 증가시킵니다.
while문은 반복 횟수가 정해지지 않았거나, 특정 조건이 만족될 때까지 계속 반복해야 할 때 유용합니다. 

하지만 조건식이 항상 참이 되지 않도록 주의해야 합니다. 

그렇지 않으면 무한 루프에 빠질 수 있습니다.

 

 

do-while문은 "한 번 해보고, 계속할지 말지를 결정하는" 반복문입니다.
즉, 먼저 코드를 실행하고, 그 다음에 조건을 확인하는 방식입니다.

 

기본구조 

do {
    // 실행할 코드
} while (조건식);

작동 방식
  한 번 실행하기 : do 블록 안의 코드를 먼저 한 번 실행합니다.
  조건 확인하기 : 그 다음에 while 뒤에 있는 조건을 확인합니다.
  계속할지 결정하기 : 조건이 참(참이면 계속 실행)이라면 다시 do 블록으로 돌아가서 코드를 실행합니다.

                                       조건이 거짓이면 반복을 멈춥니다.

 

이해하기 쉽도록 2가지 예시

  조건이 거짓인 경우

public class Test {
    public static void main(String[] args) {
        int i = 1;
        do {
            System.out.println(i);
            i++;
        } while (i > 5);  // 조건 i 는 5보다 커?
    }
}

위의 예제와 같이 조건이 거짓이지만 1번의 출력이 이뤄집니다.

 

 

  조건이 참인 경우

public class Test {
    public static void main(String[] args) {
        int i = 1;
        do {
            System.out.println(i);
            i++;
        } while (i < 5);  // 조건 i 는 5보다 작아?
    }
}

위의 예제와 같이 조건이 거짓이 될 때가지 계속 작동

728x90