자바 프로그래밍 입문-연습문제 #2

파핑·2022년 3월 24일
0

JAVA practice

목록 보기
2/2
post-thumbnail

자바 프로그래밍 문제 풀이 #2


Q1 구구단을 짝수 단만 출력하도록 프로그램을 만들어보자. (continue문 사용)

public class B123p2 {

	public static void main(String[] args) {
		int dan;
		int times;
		
		for(dan = 2; dan <= 9; dan++) {
			if(dan % 2 ==1)
				continue;
			for(times = 1; times <= 9; times++) {
				System.out.println(dan + "X" + times + "=" + dan * times);
		}
			System.out.println( );
	}

  }
}

우선 객체의 이름은 단은dan, 곱은 times라고 선언하였다.
정해진 값을 반복적으로 셈할 때 유용한 for문으로 구구단 프로그램을 만들어 보았다. 이 때 dan, times 두가지를 반복해 곱해야 하므로 중첩반복문을 사용하였다.

①2~9단까지 반복하는 반복문 필요.
②각 단에서 1~9까지 곱하는 반복문 필요.

위 반복문 중 단이 증가하는 부분과 곱하는 수가 증가하는 부분 중 무엇을 먼저 반복수행해야 할까?

외부for문의 초기화 값이 dan = 2이므로 구구단 2단부터 시작한다. 이를 수행한 뒤 내부 for문으로 들어가면 초기화 값인 times = 1부터 시작해 1씩 증가해 9보다 작거나 같을 때 까지 곱해줄 것이다.

이제 짝수단만 출력될 수 있도록 if문을 사용해 조건을 걸어보자.
짝수만 출력하게 하기 위한 식은 숫자를 2로 나눈 뒤 나머지 수가 0일 경우가 된다.
그럼 (짝수조건)dan % 2 == 0으로 if문을 사용하면 성공인가? 짝수 단만 출력이 되나 문제에서 조건으로 걸었던 continue문을 사용하지 못했다.

(홀수조건)dan % 2 == 1이라고 if문을 만든 뒤 continue문을 사용하면 단이 홀수가 아닐 경우 외부중첩문을 빠져나가 다시 1을 더한 뒤 내려오게 된다.

이렇게 해서 짝수 단만 출력되는 구구단 프로그램 완성!

Q구구단을 단보다 곱하는 수가 작거나 같은 경우까지만 출력하는 프로그램을 만들어 보시오. (break문 사용)

public class B123p3 {

	public static void main(String[] args) {
		int dan;
		int times;
		
		for(dan = 2; dan <= 9; dan++) {
			for(times = 1; times <= 9; times++) {
				if(times > dan)
				break;
				System.out.println(dan + "X" + times + "=" + dan * times);
				
		} 
			System.out.println( );
	}

 }
}

위 구구단코드를 일단 복붙하고 단보다 곱하는 수가 작거나 같은 경우를 if문으로 어떻게 표현해야 할지 생각해보았다.
단보다 곱하는 수가 작거나 같은 경우란 2단의 경우 2X2=1, 2X2=4까지만 출력하는 경우란 이야기다.
그러므로 if(times > dan)라고 설정하였다. 그리고 그 뒤에 break문을 넣어 곱하기를 중단하고 다시 단을 더할 수 있도록 하였다.

즉 2X2가 되었을 때 곱하기가 중단되어 다시 단을 더하는 부분으로 빠져나가게 되는 것이다.

✍잠깐 메모
continue문은 반복문을 계속 수행하지만 특정 조건에서 수행문을 생략하는 경우에 사용
break문은 반복문을 더 이상 수행하지 않고 빠져나올 때 사용.

profile
html/css공부 중(JAVA잠시 접어두는 중)

0개의 댓글