(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

입력
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
출력
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
제출 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int num2 = sc.nextInt();
System.out.println(num1 *(num2%10));
System.out.println(num1 *(num2 %100/10));
System.out.println(num1 * (num2/100)); // 5
System.out.println(num1*num2);
sc.close();
}
}
더 나아가기
: 런타임 에러
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int num2 = sc.nextInt();
int num3 = num1 *(num2%10);
int num4 = num1 *(num2%100/10);
int num5 = num1 * (num2/100);
System.out.println(num3);
System.out.println(num4);
System.out.println(num5); // 5
System.err.println(num3+num4*10+num5*100);
}
}
처음 제출한 코드이다.
런타임 에러가 나길래 변수를 많이 선언해서 그런가?
일단 sc.close();로 Scanner를 닫아봤다
하지만 또 오류 발생
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int num2 = sc.nextInt();
System.out.println(num1 *(num2%10));
System.out.println(num1 *(num2 %100/10));
System.out.println(num1 * (num2/100)); // 5
System.err.println(num1*num2);
sc.close();
}
}
Scanner 문제인가? 싶어서 일단 변수 개수를 줄여봤다
그래도 여전한 오류
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int num2 = sc.nextInt();
System.out.println(num1 *(num2%10));
System.out.println(num1 *(num2 %100/10));
System.out.println(num1 * (num2/100)); // 5
System.out.println(num1*num2);
sc.close();
}
}
질문 게시판이랑 구글 검색해봤는데 뭐가 문제인지 몰랐다
친구에게 물어봤는데
System.err.println(num1*num2);
이 코드가 문제인 것 같다고했다.
sys.err를 입력한 적이 없었는데?! eclipse 단축키를 사용해서 sys를 입력해서 그런가 잘못 선택했나보다.
작성한 코드도 꼼꼼히 다시보자.
System.out.println
표준 출력 스트림('stdout')으로 데이터를 보낸다.
Console창에 표시되며, 주로 프로그램의 정상적 출력(ex. 결과값, 정보 메세지)를 나타내는데 사용된다.
System.err.println
표준 에러 스트림('stderr')으로 데이터를 보낸다.
Console창에 표시되지만, 주로 프로그램의 에러메세지, 경고, 디버깅 정보를 출력하는데 사용된다.
일부 온라인 코딩 플랫폼이나 테스트 환경에서는 System.err 출력을 에러, 비정상적 종료로 간주할 수 있다.
'백준 > 브론즈 탈출하기' 카테고리의 다른 글
[Java] 백준 2525번 : 오븐 시계 (2) | 2023.11.20 |
---|---|
[Java] 백준 : 10250번 ACM 호텔 문제 (0) | 2023.11.18 |
[Java] 백준 1152번 : 단어의 개수 (1) | 2023.11.14 |
[Java] 백준 2884번 : 알람시계 (1) | 2023.11.13 |
[Java] 백준 2475번 : 검증수 (0) | 2023.11.10 |