본문 바로가기
Base/Java

9. while 반복문

by 귀멸 2022. 5. 22.

0. 반복문
 - 코드의 일정부분을 반복하여 실행하는 제어문
 - 조건식이 참일 동안 반복하여 실행하는 제어문
 - 반드시 탈출조건 또는 종료 지점을 만들어 주어야 한다.
 
 - 종류
   while       : 반복할 횟수가 일정하지 않을 때
   do ~while : 반드시 한번은 실행을 해야 하며 잘못된 데이터를 걸러낼 때 사용한다.
   for          : 반복할 횟수가 일정할 때
   
------------------------------------------------------------------------------------

while
 - 반복할 횟수가 일정하지 않을 때
 - 반복할 횟수가 모를 때
 - 반복할 횟수가 무한일 때
 - 형식
 
  while(조건식) {
 
  종속문장;
   
  }  
 
do ~ while
- 무조건 한번은 실행을 해야하며 잘못된 데이터를 걸러낼 때 사용
- 종속문장을 먼저 실행하기 때문에 결과물을 이용하여 조건식에서 비교하기 좋다
- while문과 구별하기 위해서 제일끝에 ;적어주어야 한다.
- 형식
  

  do {
  
  종속문장
  
  } while(조건식);

 

1. 실습코드 (기본문법)

package whileloop;

public class Test01 {

    public static void main(String[] args) {

    int i = 1;

    while(true) {

        System.out.println(i);
        if(i == 5) {
           break;                  // 탈출 지점 while - true ~ 조건문 조합
           }
        i++;
        }

    while(i <= 5) {
        System.out.println(i);
        i++;
    }
    }
}

2. 실습코드(업-다운 게임)

package whileloop;

import java.util.Scanner;

public class Test04 {

   public static void main(String[] args) {

   Scanner sc = new Scanner(System.in);
   int ans = (int)(Math.random() * 100) + 1;
   int i = 0;

   while(true) {
       System.out.print("수입력 : ");
       int num = sc.nextInt();
       i ++;
       if (num == ans) {
             System.out.println("정답!");
             System.out.println("시도 횟수 : " + i + "번");
             break;
       } else if (ans > num) {
             System.out.println("업!");
       } else {
             System.out.println("다운!");
       }
    }
    }
}

3. 실습코드(구구단 맞추기)

package whileloop;

import java.util.Scanner;

public class Test05 {

   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      int score = 0;
      int correct = 0;
      int wrong = 0;

      while(wrong < 3) {
     
         int a = (int)(Math.random() * 18) + 2;
         int b = (int)(Math.random() * 9) + 1;
         int ans = a * b;
         System.out.print(a + " X " + b + " = ");
         int user = sc.nextInt();
         if(ans == user) {
             System.out.println("정답! + 10점");
             score += 10;
             correct ++;
             if(a >= 11) {
                System.out.println("어려운 문제 정답 추가 5점!");
                 score += 5;
              }
         } else {
             System.out.println("오답!");
             wrong ++;
         }
      }
       System.out.println("게임오버!");
       System.out.println("획득 점수 : " + score + "점");
       System.out.println("정답 횟수 : " + correct + "번");
   }
}

4. 실습코드 (무기 레벨업)

package whileloop;

public class Test06 {

    public static void main(String[] args) {

        int level = 0;
       int tot = 0;
        int pay = 1000;

        while (level < 10) {

           tot += pay;
           int percent = (int) (Math.random() * 100) + 1;

            if (percent <= 35) {

               System.out.println("성공");
               level++;

           } else if (percent > 70) {

                System.out.println("실패");
                if (level != 0) {
                level--;
               }

           } else {

                System.out.println("무반응");

            }

        }
        System.out.println("Level 10 달성! 총 청구 금액 : " + tot + "원");

    }

}

 

'Base > Java' 카테고리의 다른 글

11. array (배열)  (0) 2022.05.30
10. for 반복문  (0) 2022.05.23
8. 선택문 (switch ~ case)  (0) 2022.05.22
7. Math.random()와 if-else 구문 연습  (0) 2022.05.22
6. 제어문 - 조건문 ( if ~else)  (0) 2022.05.22

댓글