반응형
문제 1. 구구단ver2
구구단을 출력하는데 시작단,끝단,시작곱,끝곱, 그리고 표시할 총 줄수를 입력받는 코드를 입력하시오.
package practice.gugu2;
import java.util.Scanner;
public class Gugu2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int i, j, k;
int num_1;
int col;
int startDan,endDan;
int startMultiplicand,endMultiplicand;
System.out.println("출력하고자 하는 시작단수를 입력하세요");
startDan = sc.nextInt();
System.out.println("출력하고자 하는 마지막 단수를 입력하세요");
endDan = sc.nextInt();
System.out.println("출력하고자 하는 첫번째 곱의 수를 입력하세요");
startMultiplicand = sc.nextInt();
System.out.println("출력하고자 하는 마지막 곱의 수를 입력하세요");
endMultiplicand = sc.nextInt();
System.out.println("한페이지에서 출력하고자하는 열의 수를 입력하시오.");
col = sc.nextInt();
//num_1의 값은 i의 값을 초기화 하는 역할뿐 아니라 i값엔 변화없이 증감을 주기위한 임시공간이다.
//혹시나 다른 공간을 빌려서 쓸수있는게 있다면 알려주시면 감사할꺼같습니당 :)
for (i = startDan; i <= endDan; i += col) {
num_1 = i;
for (j = startMultiplicand; j <= endMultiplicand; j++) {
for (k = 1; k <= col; k++) {
System.out.printf("%2d x %2d = %2d \t", i, j, (i * j));
if (i < endDan) {
i++;
} else {
break;
}
}
System.out.println();
i = num_1;
}
System.out.println();
}
sc.close();
}
}
위의 코드는 총 3중 순환문을 사용하였다. 구구단같은 경우 2중 순환문을 사용하게 되는데 위의 조건중 하나인 한 화면에서 출력하고자 하는 줄수를 입력받아서 출력하기 위해선 하나의 루프가 더 들어가야만 했다.
그리고 i루프안에 증가값이 줄수의 값이랑 같은 이유는 i가 처음지정된값이 2이고 col이 3 이면 2,3,4단이 출력뒤 5단이 출력되어야 하니 3을 증가시켜서 출력을 하면된다.
k 가 시작되는 줄은 총 나타내고자 하는 줄의 반복문
j 가 나타내고자 하는 값은 시작곱 과 마지막곱사이의 반복문
i 가 나타내고자 하는 값은 시작단과 끝단을 표시하기위한 반복문이다.
그리고 변수 num_1을 쓴것은 k가 반복될때 i값이 증가되어야 그 다음단수가 보이기 때문에 num_1의 변수에 i의 값을 넣고 보존해놓은 다음에 k구문이 돌때 증가시켰다가 j구문 마지막에 다시 i를 초기화하는 구문이 들어가있다.
반응형
'Java 수업 > 과제' 카테고리의 다른 글
입력받은 수까지 3,6,9이 포함되어있는지를 확인하는 코드 (2) | 2019.05.19 |
---|