728x90

■while문

1) 구조

    while(조건식){ 실행문장; // 조건식의 결과가true일 동안! 실행됨 }

예제)

// while문을 사용해서 1부터 10까지 출력

        int i = 1;
        while(i<=10) {
            System.out.println(i);
            i++;
        }
  • 증가되는 보폭이 어디에 있냐에 따라 결과 값이 다르다!

예제)

// 무한루프 사용해서 1~10까지 출력하기 
// while ---> 조건식 (초기화(변수), 보폭 xxxxx) 
int i = 1; 
while(true) { 
// while문을 언제 break; 할건지 
System.out.println(i); 
i++;//보폭 if(i==11) { break; 
} 
}

예제)
while문을 사용하여 키보드로부터 입력 받은수가 10보다
작을 때만 계속 정수를 입력 받으세요.

// while문을 사용하여 키보드로부터 입력 받은수가 10보다
// 작을 때만 계속 정수를 입력 받으세요.

Scanner sc = new Scanner(System.in);    

while(true) {
    System.out.print("정수 입력 : ");
    int i = sc.nextInt();
    if(i>10) {
        System.out.println("종료되었습니다");
        break;

    }
}

예제)
// 정수 입력 : __
// 누적 결과 : 결과 값 출력
// 단, -1을 입력 받았을 경우 프로그램을 종료

방법1

// 1. 입력하는 도구 가져오기
        Scanner sc = new Scanner(System.in);
        // 1) 조건식 : 입력받은 수가 -1이 아닌동안 반복
        int num = 0;
        // while문을 한번이라도 동작하게 하려면
        // num을 -1이 아닌 다른 숫자로 초기화 시키자!

        // num의 값을 누적시킬 공간(변수)
        int sum = 0;
        // sum을 shile문 밖에 선언한 이유
        // : while문 안에 들어가 있으면 반복할 때마다
        //   sum이 0으로 초기화 된다!

        while(num != -1) {
            //출력문
            System.out.print("숫자 입력: ");
            num = sc.nextInt();
            sum += num;
            System.out.println("누적 결과 : "+sum);

        }
        System.out.println("프로그램이 종료 되었습니다.");

방법2

// 1. 입력하는 도구 가져오기
        Scanner sc = new Scanner(System.in);


        int sum = 0;
        while (true) {
            System.out.print("숫자 입력 : ");
            int i = sc.nextInt();

            sum += i;
            System.out.println("누적 결과 : " + sum);

            if (i == -1) {
                System.out.println("종료되었습니다.");
                break;
            }
        }

예제)
while문을 사용하여 숫자를 입력받아
홀수와 짝수가 각각 몇개 입력되었는지
출력하는 프로그램을 작성하세요.

방법1)무한루프

Scanner sc = new Scanner(System.in);

        int num = 0;
        int num1 = 0;
        int num2 = 0;
        while(true) {
            System.out.print("숫자 입력 : ");
            num = sc.nextInt();

            if(num%2 == 0) {
                num1 += 1;
            }else if(num%2 == 1) {
                num2 += 1;
            }else if(num==-1) {
                System.out.println("종료되었습니다.");
                break;
            }
            System.out.println("짝수개수 : "+num1);
            System.out.println("홀수개수 : "+num2);

        }

방법2)조건문

Scanner sc = new Scanner(System.in);
        int num = 0;
        int num1 = 0;
        int num2 = 0;

        while(num!=-1) {
            System.out.print("숫자 입력 : ");
            num = sc.nextInt();

            if(num%2 == 0) {
                num1 += 1;
            }else if(num%2 == 1) {
                num2 += 1;
            }
            System.out.println("짝수개수 : "+num1);
            System.out.println("홀수개수 : "+num2);
        }
        System.out.println("종료되었습니다");

■do-while문

방법1) do-while문

Scanner sc = new Scanner(System.in);
        //1. 현재 몸무게 입력
        System.out.print("현재 몸무게 : ");
        int weight = sc.nextInt();
        //2. 목표 몸무게 입력
        System.out.print("목표 몸무게 : ");
        int weight1 = sc.nextInt();
        int minus=0; //감량한 몸무게
        int week = 1; //주 차를 의미하는 변수
        //3. 주차 감량 몸무게 입력 --> 반복
        // 목표 몸무게에 도달 할 때 까지
        do {
            System.out.print(week+"주차 감량 몸무게 : ");
            week++;
            minus = sc.nextInt();
            weight-=minus;
            if(weight<=weight1) {
                break;
            }
        }while(true);
        System.out.println(weight+"kg 달성!! 축하합니다!!");

do문에서 조건을적고 break가 되면 while문으로 간다.
방법2) while문

System.out.print("현재 몸무게 : ");
        int weight = sc.nextInt();

        System.out.print("목표 몸무게 : ");
        int weight1 = sc.nextInt();
        int minus=0;
        int week = 1;

//        while(weight>weight1) {
//            System.out.print(week+"주차 감량몸무게 : ");
//            minus = sc.nextInt();
//            weight -= minus;
//            week++;
//            if(weight<=weight1) {
//                System.out.println(weight+"kg 달성!! 축하합니다!!");
//                break;
//            }
//        }
        while(true) {
            if(weight>weight1) {
            System.out.print(week+"주차 감량몸무게 : ");
            minus = sc.nextInt();
            weight -= minus;
            week++;
            }else {
                System.out.println(weight+"kg 달성!! 축하합니다!!");
                break;
            }
            }

ps. 반복횟수가 정해지지 않았을땐 while문! 한번은 꼭 실행해야 할때에는 do-while문!

728x90

'Study > JAVA' 카테고리의 다른 글

JAVA 기초 6일차 <배열>  (0) 2022.09.19
JAVA기초 5일차 <반복문 예제>  (0) 2022.09.17
JAVA기초 3일차 <반복문(for문)>  (0) 2022.09.15
JAVA기초 2일차 <조건문>  (0) 2022.09.14
JAVA기초 2일차 <연산자>  (2) 2022.09.14
복사했습니다!