这段代码在eclipse中没有显示错误,但在执行时显示如下:
线程"main"java.lang.ArithmeticException:/by 0prime_number.main (prime_number.java: 15)
下面的代码:
import java.util.Scanner;
public class prime_number {
public static void main(String[] args) {
int temp;
boolean isPrime=true;
Scanner scan = new Scanner(System.in);
System.out.println("Enter any number: ");
int num = scan.nextInt();
scan.close();
for(int i = 0; i<num;i++) {
temp=num%i;
if(temp==0) {
isPrime=false;
break;
}
}
if(isPrime==true) {
System.out.println(num+" is a Prime number!");
}
else {
System.out.println(num+" is not a Prime Number!");
}
}
}
在for循环的第一次迭代中,i == 0
.
当到达
行temp = num % i;
程序尝试用num
除以i
并求除余数。由于不能除以0,程序抛出错误。
从i=1开始for循环,因为当你这样做时:
temp = num % i;
你实际上是在除以0。
如果你真的想,你可以从i = 2开始你的for循环,因为i = 1总是你的数字的因数,如果它是一个整数。