Java数字表奇怪的错误

时间:2016-09-29 04:15:32

标签: java loops for-loop math

对于学校,我们必须制作一个列出

的数字表
  • 从1到20的一系列int
  • 那些相同的数字平方和立方
  • 这些数字的正方形和立方根。

我第一次制作表格的数字很好但是它不会组织有条理的列,但是当我把它搞砸了一点时它就会制作列但是循环都是错误的。有谁知道可能发生了什么或我如何解决它?

System.out.print ("Enter an integer between 1 and 20.");
    int n= scan.nextInt();
        for (n=1; n<20; n++)
        {   
                System.out.print (n++);
                System.out.print (n*n + "\t" + " "); 
                System.out.print(n*n*n + "\t" + " ");
                System.out.print (dec.format (Math.sqrt(n))+ "\t" + " ");
                System.out.print (dec.format (Math.cbrt(n)) + "\t" + " ");
                System.out.println ();

                }
              }
//these are the original way I did the loops; just a different for-loop for each one right on top of one another.
        //(n=1; n<=20; n++) 
        // (n=1; n<20; n++) 
        // (n=1; n<20; n++) 
        // (n=1; n<20; n++) 

2 个答案:

答案 0 :(得分:1)

您的第一个print声明是:

System.out.print(n++);

这包含n++,它将改变你的循环变量。这会破坏你的输出。将其更改为:

System.out.print(n);

或更好:

System.out.print (n + "\t" + " ");

这会解决您的问题吗?

而且,正如Iqbal在评论中指出的那样,您的for循环应包含 20:

for (n = 1; n <= 20; n++)

此外,这段代码的重点是什么?

System.out.print ("Enter an integer between 1 and 20.");
int n= scan.nextInt();

永远不会使用n的此值。

答案 1 :(得分:0)

我不确定您的确切输出格式是什么;但我可以通过变量n递增的方式立即看到问题。您将变量n加倍,如下所示

//the for loop should be as below.
for (n=1; n<=20; n++)
        {   
                System.out.print (n++); //this line increments n again.Instead of this do System.out.print(n+1);
                System.out.print (n*n + "\t" + " "); 
                System.out.print(n*n*n + "\t" + " ");

如果您关注评论,那么您的程序应该按预期工作。如果您不熟悉Java或编程,您可能希望真正了解各种运算符以及它们对它们所操作的变量的影响。例如,此程序中使用的一元增量运算符++会增加变量的值,并将其存储回变量本身。

希望这有帮助。