ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • do-while문
    Java 2021. 11. 22. 09:23
    • 계속진행여부 물을때
    do{
     	 // 실행문 (한번은 무조건 실행됨)
     
     
     
     	// 계속진행여부
     	System.out.print("계속하시겠습니까?(1:예, 2:아니오)");
    	int ans = scan.nextInt();
    	if(ans==1) continue;
    	else break;
        
     }while(true);
    while(true){
    
       // 실행문
        
        
        
        // 계속진행여부
        System.out.print("계속하시겠습니까(1:예, 2:아니오)?");
        int ans = sc.nextInt();
        
        if(ans==1) continue;
        else break;
    }

     

    - 예제) 로또번호 생성기

    단, 보너스번호를 제외한 정렬과 중복제거도 구현해야함

    import java.util.Random;
    import java.util.Scanner;
    
    public class Lotto {
    	public static void main(String[] args) {
    		Scanner scan = new Scanner(System.in);
    		Random ran = new Random();
    		
    		while(true) {
    			System.out.print("게임수=");
    			int gameCount = scan.nextInt();
    			// 게임수만큼 반복
    			for(int cnt=1; cnt<=gameCount; cnt++) {
    				// 하나의 게임을 저장할 배열 생성
    				int lotto[] = new int[7];
    				for(int i=0; i<lotto.length; i++) {
    					lotto[i] = ran.nextInt(45)+1;
    					
    					// 지금까지 만들어진 번호와 중복검사
    					// lotto[3]까지 만들었으면 [3]이랑 [0],[1],[2] 비교 
    					// --> 중복된게 있으면 [3]을 다시 생성 (i--)
    					for(int check=0; check<i; check++) { 
    						if(lotto[i]==check) i--; 
    					}
    				}
    				
    				// 정렬 (마지막에 생성된 보너스 제외)
    				for(int idx=0; idx<lotto.length-2; idx++) {
    					for(int j=0; j<lotto.length-2-idx; j++) {
    						if(lotto[j] > lotto[j+1]) {
    							int tmp = lotto[j];
    							lotto[j] = lotto[j+1];
    							lotto[j+1] = tmp;
    						}
    					}
    				}
    				// 출력
    				System.out.print(cnt+"게임=[");
    				for(int i=0; i<lotto.length-1; i++) {
    					if(i==lotto.length-2) {
    						System.out.print(lotto[i]+"]");
    					}else {
    						System.out.print(lotto[i]+",");
    					}
    				}
    				System.out.print(", bonus="+lotto[lotto.length-1]);
    				System.out.println();
    				
    			}
    			
    			
    			// 계속진행여부
    			System.out.print("계속하시겠습니까?(1:예, 2:아니오)");
    			int ans = scan.nextInt();
    			if(ans==1) continue;
    			else break;
    			
    		}
    					
    	}
    
    }

     

    • 숫자맞추기

    import java.util.Random;
    import java.util.Scanner;
    
    public class NumberMatch {
    
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		Random ran = new Random();
    		
    		int ans = ran.nextInt(100)+1; // 비교할 정답으로 난수 하나 입력받기
    		int cnt = 0;
    		
    		do {
    			do {
    				System.out.print("1~100사이의 정수 입력=");
    				int inData = Integer.parseInt(sc.nextLine());
    				//맞춘회수
    				cnt++;
    				
    				if(ans > inData) {
    					System.out.println("더 큰 수 입니다.");
    				}else if(ans < inData) {
    					System.out.println("더 작은 수 입니다.");
    				}else {
    					System.out.println(cnt+"번째 맞추셨습니다.");
    					break;
    				}
    				
    			}while(true);
    			
    			// 종료 확인
    			System.out.print("계속하시겠습니까?(예:y/Y, 아니오:그외)");
    			String que = sc.nextLine();
    			if(!que.equalsIgnoreCase("y")) {
    				break;
    			}
    			
    		}while(true);
    	}
    }

    'Java' 카테고리의 다른 글

    객체지향 퀴즈  (0) 2021.11.24
    객체지향프로그래밍 (자바의정석)  (0) 2021.11.22
    배열  (0) 2021.11.22
    정렬알고리즘  (0) 2021.11.22
    for문/while문/switch문  (0) 2021.11.21

    댓글

Designed by Tistory.