【问题标题】:No Output in Console Java控制台 Java 中没有输出
【发布时间】:2014-11-06 14:11:03
【问题描述】:

我正在创建一个程序,在该程序中,它可以生成最多由用户输入的特定数字的素数。当我在运行程序时输入数字时,程序不输出任何内容,并且仍在运行,我不知道为什么。我尝试使用 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++;
           }
       }
    }
}

感谢谁能告诉我我做错了什么。

【问题讨论】:

  • 你还有一个 if 语句对 if(secondloop == 1); 没有任何作用,如果你删除了分号,下一个块将有条件地执行而不是总是执行。
  • @mdl 这是我的问题,感谢您的帮助:)

标签: java for-loop while-loop primes


【解决方案1】:

如果你想调试你的代码,用小值试试,铅笔和纸,你可以测试你的循环测试所有这些,为了得到质数或数字,我们实际上应该从质数的定义开始:数字不只是除以 1 和它自身

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+",");
}
}

【讨论】:

  • 我使用 % 来表示它是否没有剩余而不是它的非素数
  • 该; if 之后会阻止进入测试所以没有输出!
  • 除此之外if没有意义 secondloop = 1;如果(第二循环 == 1); { System.out.println(firstloop); }
【解决方案2】:

它永远不会进入这个循环,因为第一个循环是 1,i 是 2。 所以 i 永远不是

for(int i=2; i<=firstloop; ++i) {

所以 firstloop 永远不会增加,它会永远循环。

【讨论】:

  • 实际上 firstloop++ 在 for 中(它永远不会被输入)由于缩进很差,它很难阅读。所以第一个循环永远不会增加,upto 的值是无关紧要的
  • 我认为这个故事对于 O.P 来说是有道理的
【解决方案3】:

如果你正确地缩进你可能会看到的代码,那么你增加firstloop inside for 循环!另一方面,for循环永远不会执行,因为for(int i=2; i&lt;=firstloop; ++i)i总是大于firstloop

【讨论】:

  • 正确缩进我的代码是什么意思,我在网上上编程课,但它从来没有说过任何关于正确缩进的事情。如何实现“正确缩进”
  • 正确的缩进有助于您(和我们)更快地理解您的代码并找出您实际犯的错误。对于初学者:每个右括号应与相应的左括号高度相同,并且它们之间的每个内容都应缩进更多(例如,多 4 个空格)mbreen.com/javastyle.html
猜你喜欢
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
  • 2013-09-01
  • 2011-06-03
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多