[英]No Output in Console Java
我正在创建一个程序,在该程序中它生成质数直到用户输入的特定数。 当我在运行程序时输入数字时,该程序不会输出任何内容,并且仍在运行,我无法弄清原因。 我尝试使用double而不是int,并且尝试使用i ++而不是++ i都没有解决问题。 有人请帮忙! 这是我写的代码:
package assignment_4_1;
import java.util.Scanner;
public class Assignment_4_1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
System.out.println("Enter a number above 50 to find all of the primes between 1 and that number: ");
int upto = input.nextInt();
int firstloop = 1;
while(firstloop < upto)
{
for(int i=2; i<=firstloop; ++i)
{
double secondloop;
if(firstloop % i == 0)
{
secondloop = 0;
}
secondloop = 1;
if(secondloop == 1);
{
System.out.println(firstloop);
}
firstloop++;
}
}
}
}
感谢谁能告诉我我做错了什么。
它永远不会在此循环中进行,因为第一个循环是1,i为2。因此,我永远不会<= firstloop:
for(int i=2; i<=firstloop; ++i) {
因此,firstloop永远不会递增,并且会永远循环。
如果你正确地缩进代码可能会看到,你增加firstloop
里面的for循环! 另一方面,for循环将永远不会执行,因为在for(int i=2; i<=firstloop; ++i)
i
总是大于firstloop
如果您想调试代码,请尝试使用较小的值(如铅笔纸)进行测试,可以对所有代码进行循环测试,以获取素数或数值,我们实际上应该从素数的定义开始:但是由1表示,如果number不是质数,则为self,所以它们的n为1 <n <number和number / n = real === number%n = 0,更确切地说是1 <n / number <2 :
Scanner input = new Scanner (System.in);
int number= input.nextInt();
boolean prime;
for (int i=1;i<=number;i++)
{
prime=true;
for(int j=2;j<=i/2;j++)
{
if(i%j==0)
{
prime=false;
break;
}
}
if(prime)
{
System.out.println(i+",");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.