본문 바로가기

JAVA

반복문(while/ do~while) 예제

728x90
SMALL

[while/do~whil문 예제]

예제1)

키보드로부터 입력받은 수가 10보다 작을 때만 계속 숫자를 입력할 수 있는 프로그램을 작성하시오.(While문/do~while문 모두 작성) **반복문 중간에 나가야 할 경우 break 사용

while문

package Aug_seventeenth_reviw;

import java.util.Scanner;

public class ex10 {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		while(true) {
			System.out.print("숫자입력 : ");
			int num = 0;
			num=sc.nextInt();
			if(num>=10) {
			break;
		}
		
	}
}
}

do~while문

package 연산자;

import java.util.Scanner;

public class 복습파일 {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int num = 0;

		do {
			System.out.print("숫자 입력 : ");
			num = sc.nextInt();

		} while (num < 10);
		System.out.println("종료!");

	}

}

예제2) 키보드로부터 입력한 숫자를 누적하여 누적결과를 출력해 주는 프로그램을 작성하시오.(단, -1을 입력한 경우 프로그램 종료) (while문/ do~while문 모두 작성)

while 문

package review;

import java.util.Scanner;

public class ex01 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int num = 0;
		int sum = 0;
				
		while(num!=-1) {
			System.out.print("숫자입력 : ");
			sum = sum+num;
			num=sc.nextInt();
			if(num==-1)
			break;
		}
		
		System.out.println("누적결과 : " + sum);
		
			
		}

	}

do~while문

package review;

import java.util.Scanner;

public class ex02 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int num =0;
		int sum =1;
		
		do {
			System.out.print("숫자 입력 : ");
			num = sc.nextInt();
			sum+=num;
		}while(num!=-1);
		System.out.println("누적 결과 : " + sum);
	}

}

예제3) 키보드로부터 입력한 숫자를 입력받아 홀수와 짝수가 각각 몇 개 입력되었는치 출력하는 프로그램을 작성하시오. (단, -1을 입력한 경우 프로그램 종료) (반복문 안에서 조건문 사용가능!)

package review;

import java.util.Scanner;

public class ex02 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int num = 0;
		int sum1 = 0;// 홀수
		int sum2 = 0; //짝수
		
		while(num!=-1) {
			System.out.println("숫자 입력 : ");
			num = sc.nextInt();
			
			if(num%2==1){
				sum1++;
			}else if(num%2==0){
				sum2++;
			}
		}
		System.out.println("홀수 개수 : "+sum1);
		System.out.println("짝수 개수 : "+sum2);
	}
}

예제4) 다이어트 프로그램 만들기

package while문;

import java.util.Scanner;

public class 복습 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("현재 몸무게 : ");
		int cut = sc.nextInt();
		System.out.print("목표 몸무게 : ");
		int goal = sc.nextInt();
		int week =1;
		
		while(true) {
			System.out.print(week + "주차 감량 몸무게 : ");
			week++;
			int weight = sc.nextInt();
			System.out.println("현재 몸무게 : "+ (cut-=weight) );
			

			if(cut<=goal) {
				System.out.println("최종몸무게 : "+cut);
				System.out.println("축하합니다!!!");
				break;
			}
			
		}
		
	}
}

예제5) 로그인 프로그램 만들기

사용자가 입력한 아이디가 "smhrd"이고 비밀번호가 "1234"인 경우만 로그인 될 수 있도록 하고 그렇지 않은 경우에는 로그인 할 수 없는 로그인 프로그램을 작성하시오. (단, 입력기회는 3번)

 

5-1) 아이디와 비밀번호를 각각 입력받고 아이디가 "smhrd"이고 비밀번호가 "1234"인 경우 "로그인 성공"문구를 출력하고 하나라도 틀린 경우에는 "로그인 실패"를 출력하시오.

5-2. 로그인이 실패했을 경우에는 계속해서 아이디와 비민번호를 입력하고 로그인이 성공하면 프로그램을 종료하시오.

5-3.아이디나 비밀번호가 틀렸을 경우 "계속 하시겠습니까?"라는 문장을 출력하고 사용자가 "Y"를 입력하면 입력을 계속하고 "N"를 입력하면 입력을 중단하시오.

5-4. 아이디/비밀번호 입력을 3번 이상 틀렸을 때 "본인인증을 해주세요" 문구를 출력하고 프로그램을 종료하시오.

package review;

import java.util.Scanner;

public class abc {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int cnt = 0;
		String id = "";
		String pw = null;
		
		do {
			System.out.print("아이디: ");
			id = sc.next();
			System.out.print("비밀번호: ");
			pw = sc.next();
			
			if(id.equals("smhrd")||pw.equals("1234")) {
				System.out.println("로그인 성공!");
				break;
			}else {
				System.out.println("로그인 실패");
				cnt++;
				if(cnt==3) {
					System.out.println("본인인증을 해주세요");
					break;
				}
			}
			System.out.print("계속하시겠습니까?");
			String answer = sc.next();
			if(answer.equals("n")|| answer.equals("N")) {
				break;
			}
						
		}while(true);
		
	}

}

6. +/- 계산기 프로그램 만들기

package review;

import java.util.Scanner;

public class abc {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
			
		while(true){
			System.out.print("정수1 : ");
			int num1 = sc.nextInt();
			System.out.print("정수2 : ");
			int num2 = sc.nextInt();
			
			int sum=num1+num2;
			int mul = num1-num2;
				
			System.out.print("연산자(+/-) : ");
			String sign = sc.next();
			
			if(sign.equals("+")){
				System.out.println(num1+ "+" +num2 +"="+ sum);
			}else if(sign.equals("-")){
				System.out.println(num1+ "-" +num2 +"="+ mul);
			}else {
				
			}
			System.out.println("계속하시겠습니까? (Y/N)");
			String answer = sc.next();
			if(answer.equals("n")||answer.equals("N")) {
				System.out.println("종료");
				break;
			}else if(answer.equals("y")||answer.equals("Y")) {
				continue;
			}
			break;
		}

	}

}

7. PIUS 게임만들기

랜덤으로 정수 2개를 뽑아 덧셈 식을 출력하고 사용자는 답을 입력하여 사용자가 원할 때 까지 게임을 계속하고 맞춘 횟수와 틀린 횟수를 출력하는 프로그램을 작성하시오.

 

**0~9 까지 정수 중 랜덤 수 뽑는 법

Random rd = new Random();
int ran = rd.nextInt(10);

 

7-1) 1~10 까지 정수 중 랜덤으로 2개를 뽑아 다음과 같이 출력하시오

 

7-2) 사용자가 값을 입력한 후 값이 답과 일치할 경우 "Success"를 출력하고 일치하지 않을 경우 "Fail"을 출력하시오.

7-3) 결과를 출력한 후 "계속하시겠습니까"를 출력하여 "Y"를 입력하면 계속해서 게임을 진행하고 "N"을 입려가면 게임을 중단하시오.

 

7-4) 사용자가 답을 입력한 결과가 "Success"인 경우에는 새로운 숫자를 뽑아서 문제를 출력하고 "Fail"인 경우에는 기존의 문제를 다시 출력하시오.

7-5) 프로그램 종료 시 사용자가 답을 맞춘 횟수와 틀린 횔수를 출력하시오.

package review;

import java.util.Random;
import java.util.Scanner;

public class ex02 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		Random rd = new Random();
		
		boolean sw = true; // true일때 새로운 문제 false일때 같은문제
		
		int num1= rd.nextInt();
		int num2 = rd.nextInt();
		
		int o = 0;
		int x = 0;
		
		while(true) {
			if(sw==true) {
				num1 =rd.nextInt(10)+1;
				num2 = rd.nextInt(10)+1;
			}
			System.out.printf("%d + %d = ",num1,num2);
			
			int input = sc.nextInt();
			
			if(input==num1+num2) {
				System.out.println("Success!");
				sw=true;
				o++;
			}else {
				System.out.println("Fail");
				sw=false;
				x++;
			}
			System.out.println("계속하시겠습니까?");
			String answer = sc.next();
			
			if(answer.equals("n")||answer.equals("N")) {
				System.out.println("종료");
				break;
			}else if(answer.equals("y")||answer.equals("Y")){
				continue;
			}
		}
			System.out.println("맞춘개수 : "+o);
			System.out.println("틀린개수 : "+x);
		}
	}
728x90
LIST