ONLINE JUDGE/제어문
[백준2739] 구구단
W_W_Woody
2022. 1. 26. 01:28
https://www.acmicpc.net/problem/2739
2739번: 구구단
N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.
www.acmicpc.net
package step3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Day06_2739 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
br.close();
try {
int rst = 0;
if (N >= 1 && N <= 9) {
for (int m = 1; m < 10; m++) {
rst = m * N;
System.out.println(N + " * " + m + " = " + rst);
}
} else {
System.out.println("다시 입력하세요");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
어떻게 풀어서 맞추긴 하였으나 예외처리 개념도 헷갈렸다.
제어문도 잡다하게 작성한 듯 싶다.
조건을 단다고 해서 이렇게 된 것 같은데 조건도 허술하다.
위에 제출한 코드를 살펴보면 예외처리를 두 번 넣은 것을 볼 수 있다.
try~catych로만 예외처리를 해보기위해 Exception을 지웠더니 readLine의 예외처리 받는 부분이 없어서 빨간줄이 그어진다.
그래서 try문 안에 구문을 넣어서 readLine의 예외가 catch문으로 갈 수 있도록 한다,
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
br.close();
for(int i = 1; i<10;i++) {
System.out.println(a+" * "+i+" = "+(a*i));
}
}
}
이렇게 쉽게 for문으로 작성할 수 있는 것을...!