2
我试图做一个函数来给出最接近的素数,输入的人数,我没有成功。顺便说一下,我现在开始编程,并为循环混淆了我,任何提示? 这里的代码如下:我不能让这个函数给我所有的素数
public static void main(String[] args) {
// Entry Mechanism
Scanner input = new Scanner(System.in);
// Variables
int n1, biggestPrime;
System.out.print("Number: ");
n1 = input.nextInt();
biggestPrime = biggestPrime(n1);
}
public static int biggestPrime(int n1) {
int biggestPrime = 0;
boolean isPrime = true;
if (n1 < 0)
return 0;
for (int i = n1; i == 0 && isPrime == false; i--) {
if (i % n1 == 0) {
isPrime = false;
}
}
return biggestPrime;
}
你期望你的函数返回,你认为哪一行代码会发生这种情况? – SLaks
*最接近的*表示“x <=数字”?因为这不是最接近的,但这就是你正在做的... –
Hmn,'isPrime'是真的,for循环希望'isPrime'是假的,那永远不会发生......尝试使'isPrime'假默认('boolean isPrime = false') – Charlie