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();
		}
	}

}

어떻게 풀어서 맞추긴 하였으나 예외처리 개념도 헷갈렸다.

제어문도 잡다하게 작성한 듯 싶다.

조건을 단다고 해서 이렇게 된 것 같은데 조건도 허술하다.

[Java] try~catch? throws?

 

위에 제출한 코드를 살펴보면 예외처리를 두 번 넣은 것을 볼 수 있다.

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문으로 작성할 수 있는 것을...!