자바 프로그래밍 입문-연습문제 #2
자바 프로그래밍 문제 풀이 #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문은 반복문을 더 이상 수행하지 않고 빠져나올 때 사용.
Author And Source
이 문제에 관하여(자바 프로그래밍 입문-연습문제 #2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wnltmddla4/자바-프로그래밍-입문-연습문제-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)