-3

我试图了解 Java 中递增的基础知识...这里我有一个基本示例,但我不太清楚它的输出...所以它以 4 开始,当然是 2 * 2,而 9是 4 * 4 + 1,但现在如何得到 16 呢?谢谢你

public class Mystery 
{
public static void main( String[] args )
{
  int y;
  int x = 2;
  int total = 0;


  while ( x <= 10 ) 
  {
     y = x * x;     
     System.out.println( y );   
     total += y;              
     ++x;                        
  } 

  System.out.printf( "Total is %d\n", total );
 } // end main
 } // end class Mystery

输出

  4
  9
 16
 25
 36
 49
 64
 81
 100
 Total is 384
4

3 回答 3

3

正如所料,16 是 4*4。你的算法打印我们的第一个 2*2,然后是 3*3,而不是 4*4+1,顺便说一下,它是 17。

于 2013-05-12T21:07:16.053 回答
1

您正在打印出这一行的结果:

y = x * x; 

并且x在每次迭代中增加 1。这是基本的乘法:

2 * 2 = 4
3 * 3 = 9
4 * 4 = 16
5 * 5 = 25
...

4 * 4 + 1是 17而不是9。

于 2013-05-12T21:07:50.927 回答
1

x每次迭代递增。

  x    x*x    total
--------------------
  2    2*2=4    4
  3    3*3=9    13
  4    4*4=16   29
  ...

如果您添加更多调试输出,这将很容易理解:

  while ( x <= 10 ) 
  {
     y = x * x;       
     total += y;

     System.out.printf("x=%d    y=x*x=%d   total=%d, x, y, total );

     ++x;                        
  } 

在此处输入图像描述

于 2013-05-12T21:08:09.927 回答