본문 바로가기

자바 수업 정리

수업정리 3일차.

반복문 While

횟수가 일정치 않을 경우 사용

while(조건식) {

 실행문;

}

while문은 반드시 실행문안에 조건식 false가 될 수 있는식을 포함해야함.

 

ex) up / down Game

public static void main(String[] args) {
		/* up / down Game
		 * 
		 * 1-50 사이의 랜덤수를 생성하여 플레이어가 맞추는 게임.
         Scanner scan = new Scanner(System.in);
		
		
		int num1 = (int)(Math.random()*50)+1;
		System.out.println("컴퓨터가 랜덤 수를 생성하였습니다.");
		
		int count = 5;
		
		while(true) {
			System.out.println("숫자를 입력해주세요(1~50)");
			if(count == 0 ) {
				System.out.println("기회가 소진되었습니다. 정답: "+num1);
			}
		  int num2 = scan.nextInt();
			if (num2 > num1) {
				count--;
				System.out.println("down~!!");
			} else if (num2 < num1) {
				count--;
				System.out.println("up~!!");
			} else {
				System.out.println("정답~!!" + num1);
				break;
			}
		}
		
		scan.close();
	}

}

 

 

출력구문

println : 줄바꿈이 있는 출력

print : 줄바꿈이없는 출력, 출력값이 없으면 error

printf : 지시자를 이용한 출력

지시자 

%d(정수형), %f(실수형), %c(문자), %s(문자열), %n(줄바꿈)

소수점 설정 가능, 공백추가 가능

 

주사위 게임 

주사위를 던져서 총 30칸을 이동.

주사위 값은 랜덤으로 생성(1~6)

public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int count = 0; // 던진횟수
		int end = 30; // 도착지점
		int sum = 0; // 주사위 총합
		
		while(true) {
			if(sum >= end) {
				System.out.println("도착~!! 던진횟수: " +count);
				break;
			}
			System.out.println("주사위 던지기 => Enter");
			scan.nextLine();
			count++;
			int dice = (int)(Math.random()*6)+1;
			sum += dice;
			System.out.printf("%d칸 전진 => %d칸 남았습니다.%n", dice,(end-sum));
			
		}
		scan.close();

	}

}

 

do~while문

do {

실행문;

}while(조건식);

- 실행문을 먼저 실행하고, 조건식을 비교하여 반복을 결정하는 구조

- for , while문은 조건식을 먼저 비교하기 때문에 조건식이 false면 한번도 실행되지 않을 수 있지만, do~while문은 무조건 1번은 거치고 난 후 비교.

menu 1. 저장하기 | 2. 새로만들기 | 3. 종료하기 같은 메뉴구성에 do~while()문을 많이 사용함.

 

ex)

public class DoWhile02 {

	public static void main(String[] args) {
    
		Scanner scan = new Scanner(System.in);
		
		int menu = 0;
		
		do {
			System.out.println("----menu----");
			System.out.println("1. 저장하기|2.새로만들기|3.종료하기");
			System.out.println(">> menu >");
			menu = scan.nextInt();
			
			switch(menu) {
			case 1:
				System.out.println("저장되었습니다.");
				break;
			case 2:
				System.out.println("새로만들었습니다.");
				break;
			case 3:
				System.out.println("종료합니다.");
				break;
				default:
					System.out.println("잘못된 메뉴");
			}
		}while(menu != 3);
		System.out.println("종료!");

 

다중 for문 활용

소수 찾기,  2부터 100까지 소수만 출력하기.

		Scanner scan = new Scanner(System.in);
		
		System.out.println("숫자 하나를 입력해주십시오 >> ");
		int num = scan.nextInt();
		
		int cnt = 0;
		
		for(int i=1; i<=num; i++) {
			if(num%i == 0) {
				cnt++;
			}
		}	
		if(cnt == 2) {
			System.out.println(num + " 소수입니다.");
		} else {
			System.out.println(num + " 소수가 아닙니다.");
		}

 

		// 2부터 100까지 중 소수만 출력
		
		
		for(int i=2; i<=100; i ++) { 
			int count = 0;
			for(int j=1; j<=i; j++) {
				if(i%j == 0) {
					count++;
				}
			}
			if(count == 2) {
				System.out.print(i+" ");
			}
		}

'자바 수업 정리' 카테고리의 다른 글

수업정리 6일차.  (2) 2024.07.22
수업정리 5일차.  (0) 2024.07.19
수업정리 4일차.  (0) 2024.07.18
수업정리 2일차.  (0) 2024.07.16
수업정리 1일차.  (0) 2024.07.15