본문 바로가기

국비교육/국비교육 복습

Day05_loop_Test07 : 3, 6, 9 게임 (for 반복문 활용) (★)

(Q) 3, 6, 9 게임
다음 규칙에 따라 3, 6, 9 게임을 시뮬레이션 하세요
- 1부터 순차적으로 숫자가 증가하여 출력됨
- 3 또는 6 또는 9가 들어있는 숫자라면 해당 숫자 갯수만큼 "짝"이라고 출력
- ex) 36 - 짝짝, 35 - 짝
- 범위는 99까지 출력합니다

 

 

1) boolean을 이용하는 방법

package day05;

public class Day05_loop_Test07 {

	public static void main(String[] args) {
		
		for(int i = 1 ; i < 100 ; i ++) {
			
			boolean unitOne = i % 10 == 3 || i % 10 == 6 || i % 10 == 9;
			
			boolean unitTen = i / 10 == 3 || i / 10 == 6 || i / 10 == 9;
			
			if(unitOne && unitTen) {
				System.out.println("짝짝");
			}
			else if(unitOne || unitTen) {
				System.out.println("짝");
			}
			else {
				System.out.println(i);
			}	
		}
	}
}

 

- 논리 변수 unitOne는 '1의 자리가 3' 또는 '1의 자리가 6' 또는 '1의 자리가 9'일 경우를 의미한다

- 논리 변수 unitTen은 '10의 자리가 3' 또는 '10의 자리가 6' 또는 '10의 자리가 9'일 경우를 의미한다

 

- unitOne과 unitTen이 동시에 만족하는 경우(unitOne && unitTen == true) '짝짝'을 출력

- unitOne 또는 unitTen 중 하나를 만족하는 경우(unitOne || unitTen == true) '짝'을 출력

 

 

2) 벤다이어그램 논리를 이용하는 방법

package day05;

public class Day05_loop_Test07_2 {

	public static void main(String[] args) {
		
		for(int i = 0 ; i < 100 ; i ++) {
			if(i / 10 == 3 || i / 10 == 6 || i / 10 == 9) {
				if(i % 10 == 3 || i % 10 == 6 || i % 10 == 9) {
					System.out.println("짝짝");
				}
				else {
					System.out.println("짝");
				}
			}
			else {
				if(i % 10 == 3 || i % 10 == 6 || i % 10 == 9) {
					System.out.println("짝");
				}
				else {
					System.out.println(i);
				}
			}
		}
	}
}

- 조건 'i / 10 == 3 || i / 10 == 6 || i / 10 == 9'를 만족하는 경우에 한하여

  조건 'i % 10 == 3 || i % 10 == 6 || i % 10 == 9'를 만족하는 경우 "짝짝"을 출력 (10의 자리와 1의 자리 모두 3, 6, 9 중 하나)

  그렇지 않다면 "짝"을 출력 (10의 자리만 3, 6, 9 중 하나)

 

- 그렇지 않은 경우에 한하여 (조건 'i / 10 == 3 || i / 10 == 6 || i / 10 == 9'를 만족하지 않는다면)

  조건 'i % 10 == 3 || i % 10 == 6 || i % 10 == 9'를 만족하는 경우 "짝"을 출력

  그렇지 않다면 반복수를 그대로 출력

 

 

** 논리 연산자의 진리표

1) and 연산 (A && B == X)

A B X
false false false
false true false
true false false
true true true

- A 또는 B 중 하나라도 false라면 결과는 항상 false

- A 또는 B 모두 true일 때만 true

 

2) or 연산 (A || B == X)

A B X
false false false
false true true
true false true
true true true

- A 또는 B 중 하나라도 true라면 결과는 항상 true

- A 또는 B 모두 false일 때만 false