1. 구구단의 n단을 입력하면 해당 구구단만 출력
public void multiple() {
Scanner sc = new Scanner(System.in); //구구단 단 수 입력받기
System.out.println("구구단 단 수 입력: ");
int num = sc.nextInt(); //단 수는 변수 num
//1단부터 9단까지 출력
//구구단은 1 * 1 = 1 형식으로 출력
for(int i = 1; i < 10; i++) { //i는 단수에 곱할 숫자의 변수
System.out.println(num + " * " + i + " = "+ (num*i));
}
}
▼실행결과
//3단 입력 구구단 단 수 입력: 3 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 |
2. 입력받은 숫자가 1에서 9 사이일 때에만 해당 구구단의 n단 출력
조건문이 false일 땐 "잘못된 수를 입력하였습니다."를 출력
public void multiple() {
Scanner sc = new Scanner(System.in); //스캐너로 숫자 입력받기
System.out.println("구구단 단 수 입력: \n(단, 1에서 9 사이의 값만 입력)");
int num = sc.nextInt(); // num이라는 단 수의 변수
//입력값이 1에서 9 사이의 값일 때
if((num > 0) && (num <= 9)) {
for(int i = 1; i <= 9; i++) {
System.out.printf("%d * %d = %d\n", num, i, (num*i));
} else { //if문의 조건식이 false일 때
System.out.println("잘못된 수를 입력하였습니다.");
}
}
}
▼실행결과
구구단 단 수 입력: (단, 1에서 9 사이의 값만 입력) 4 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 |
1에서 9 사이의 값만 입력하라는 조건이 있으므로 if문을 사용한다.
'0 < num <= 9'라고 조건 걸어주면 좋겠지만 이렇게 하면 에러가 뜨기 때문에 각각 'num > 0' && 'num <= 9'라고 범위 설정을 해주어야 한다. 그리고 반복문인 for문을 이용하여 1에서 9까지 출력되도록 한다.
printf문을 이용해서 %d(정수)라는 서식 지정자를 통해 변수 num, i, (num*i)를 대신 입력하였다.
if문의 조건식이 true이면 for문 출력값인 구구단이 나오고, if문의 조건식이 false이면 else문의 출력값인 "잘못된 수를 입력하였습니다."가 나온다. 즉, 1에서 9 사이가 아닌 정수값을 입력하면 출력된다.
3. 1 이상의 두 개의 값을 입력 받아서 입력값을 포함한 그 사이의 숫자를 모두 출력하기
-조건문이 false일 땐 "유효하지 않은 값입니다."를 출력
-첫 번째 숫자와 두 번째 숫자는 어느 쪽이 크던 작던 상관하지 않는다. (한 쪽의 수가 무조건 커야 한다는 것 아님)
public void multiple() {
Scanner sc = new Scanner(System.in); //스캐너로 입력 받기
System.out.println("첫 번째 숫자를 입력하시오. ");
int num1 = sc.nextInt(); //첫 번째 숫자는 변수 num1로 받기
System.out.println("두 번째 숫자를 입력하시오.");
int num2 = sc.nextInt(); //두 번째 숫자는 변수 num2로 받기
if(num1 > 0 && num2 > 0) { //조건1: 두 숫자 모두 0보다 커야함(1 이상)
//조건2: num1이 num2보다 클 때
if(num1 > num2) {
for(int i = num2; i <= num1; i++) {
System.out.println(i);
}
} //조건3: num1이 num2보다 작을 때
if(num1 < num2) {
for(int j = num1; j <= num2; j++) {
System.out.println(j);
}
}
} else { //조건4: if문의 조건문이 false일 때
System.out.println("유효하지 않은 값입니다.");
}
}
▼실행결과
첫 번째 숫자 입력: 2 두 번째 숫자 입력: 7 2 3 4 5 6 7 |
ⓐ조건1: 정수 중에서 양수값만 받으므로 변수 num1과 num2를 각각 >0 처리한다.
첫 번째 입력값이 3이고 두 번째 입력값이 9이든, 아니면 그 반대이든 상관없이 출력값이 나오게 하고 싶으면
num1이 num2보다 클 경우와 num1이 num2보다 작을 경우에 나누어서 조건을 걸어야 한다.
ⓑ조건2: 'num1 > num2'로 조건식을 적고, for문에서 변수 i는 num1보다 작은 값인 num2를 초기값으로 설정한다.
그리고 조건문에 변수 i가 num1보다 작거나 같다고 설정하고, 증감식에는 변수 i를 후위연산으로 설정한다.
왜냐하면 출력값이 초기값부터 나와야하기 때문이다.
ⓒ조건3: 조건2의 반대로 설정하면 된다. 증감식은 그대로. 대신 변수는 조건2의 변수와 같으면 안되기 때문에
다른 변수인 j로 정한다.
ⓓ조건4: if문의 조건문이 false일 때 "유효하지 않은 값입니다."를 출력한다. 즉, 변수 num1, num2이 0보다 크지 않을
때 false값이 출력된다.