한모로그 2023. 1. 15. 15:15

while 문 : 조건식에 따라 실행문을 반복

  • 조건식이 true일 경우에 계속해서 반복하고, false가 되면 반복을 멈추고 while 문을 종료


    출처, 이것이 자바다


  • while 문이 처음 실행될 때 ①조건식을 평가. 평가 결과가 true이면 ②실행문을 실행한다.
  • ②실행문이 모두 실행되면 조건식으로 되돌아가서 ①조건식을 다시 평가. 다시 조건식이 true라면 ② → ①로 진행하고, false라면 while 문을 종료.
package ch04.sec05;

/*
 * while 반복문
 */
public class PrintFrom1To10Example {

    public static void main(String[] args) {

        System.out.print(1 + " ");
        System.out.print(2 + " ");
        System.out.print(3 + " ");
        System.out.print(4 + " ");
        System.out.print(5 + " ");

        System.out.println();

        int i = 1;
        while(i<=10) {
            System.out.print(i + " ");
            i++;
        }
    }

}

package ch04.sec05;

/*
 * while문을 이용하여 1~100까지 누적된 합을 구하는 예제
 */
public class SumFrom1To100Example {

    public static void main(String[] args) {
        int sum = 0;
        int i = 1; 

        while(i<=100) {
            sum += i;
            i++;
        }

        System.out.println("1~" + (i-1) + " 합: " + sum);

    }


}



  • 조건식에 true를 사용하면 while(true) {...}가 되어서 무한 반복. 이 경우 while 문을 빠져나가기 위한 코드 필요
package ch04.sec05;
/*
 * 키보드에서 1,2를 입력하면 속도를 증속, 감속 시키고, 3을 입력하면 프로그램을 종료 시키는 예제
 */
import java.util.Scanner;

public class KeyControlExample {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        boolean run = true;
        int speed = 0;

        while(run) {
            System.out.println("-----------------------");
            System.out.println("1. 증속 | 2. 감속 | 3. 중지 ");
            System.out.println("-----------------------");
            System.out.println("선택: ");

            String strNum = sc.nextLine();

            if(strNum.equals("1")) {
                speed++;
                System.out.println("현재 속도= " + speed);
            }else if(strNum.equals("2")) {
                speed--;
                System.out.println("현재 속도= " + speed);
            }else if(strNum.equals("3")) {
                run = false;
            }
        }

            System.out.println("프로그램 종료");

    }

}

do-while 문 : 실행 결과에 따라 실행문을 반복

  • 블록 내부를 먼저 실행시키고 실행 결과에 따라서 반복 실행을 계속할지 결정
  • 작성 시 while() 뒤에 반드시 세미콜론(;)을 붙여야 하는 데 주의


    출처, 이것이 자바다


  • do-while 문이 처음 실행될 때 ①실행문을 우선 실행한다. ①실행문이 모두 실행되면 ②조건식을 평가
  • 평가 결과가 true이면 ① → ②와 같이 반복 실행을 하고, 조건식의 결과가 false이면 do-while 문을 종료한다.
package ch04.sec06;

import java.util.Scanner;

public class DoWhileExample {

    public static void main(String[] args) {
        System.out.println("메시지를 입력하세요.");
        System.out.println("프로그램 종료시 q를 입력");

        Scanner sc = new Scanner(System.in);
        String inputString;

        do {
            System.out.println(">");
            inputString = sc.nextLine();
            System.out.println(inputString);
        }while(! inputString.equals("q")); //입력한 데이터가 q가 아닐경우에만

        System.out.println();
        System.out.println("프로그램 종료");

        sc.close();

    }

}


실행 결과