繁体   English   中英

控制台Java中无输出

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM