728x90
Exception in thread "main" java.lang.ArithmeticException: / by zero
프로그램을 코딩하고 동작시키다 보면 오류가 발생한다.
이를 JAVA에서는 예외라고 한다.
- 존재하지 않는 파일에 접근하려 하거나
- 정수를 0으로 나누는 행동
- 배열 인덱스를 잘못 허용하는 경우 등
이외에도 실행 예외가 발생하는 사례들을 공부하다보면 실력이 늘 것이다...
난 위의 2번의 경우로 인해 이번 오류를 겪었다.
package Fri04;
import java.util.Scanner;
public class A4_Find_the_Factors_of_N {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
for(int i = 0; i <= n; i++) {
if(n % i == 0) {
System.out.print(i);
}
}
}
}
약수 구하는 프로그램을 하다가
for문 안에서 초기화를 0부터 할 경우,
정수인 입력값 n을 0부터 나누기 시작하기 때문에 오류가 발생한다.
예를 들어 입력값 5를 넣을 경우
5%0
5%1
5%2
5%3
5%4
5%5 이기 때문에
5%0으로 시작하는 것으로 오류가 발생.
for문 안에 초기화를 i = 1 로 수정해야 한다.
import java.util.Scanner;
public class A4_Find_the_Factors_of_N {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
for(int i = 1; i <= n; i++) {
// 입력값을 1부터 입력값까지 나누어 나머지 값이 0일 경우 출력, 즉 약수 구하기
if(n % i == 0) {
System.out.println(i);
}
}
}
}
'JAVA' 카테고리의 다른 글
[Java] 📚 String / StringBuffer / StringBuilder (1) | 2022.05.22 |
---|---|
[JAVA] Exception in thread "main" java.lang.StringIndexOutOfBoundsException (6) | 2022.03.12 |
JAVA - 반복문 (for문) (0) | 2022.02.05 |
JAVA - 배열 (Array) (2) | 2022.01.31 |
JAVA - 스캐너 클래스 (Scanner Class) (0) | 2022.01.26 |