简单的java递增不清楚

时间:2013-05-12 21:02:53

标签: java output increment

我试图理解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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

您正在打印此行的结果:

y = x * x; 

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

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

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

答案 2 :(得分: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;                        
  } 

enter image description here