【问题标题】:simple java incrementing not clear [closed]简单的java递增不清楚[关闭]
【发布时间】:2023-04-05 18:54:01
【问题描述】:

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

【问题讨论】:

  • "9 等于 4 * 4 + 1" ????? 9 在这里是 3x3...
  • 9 不是 4*4+1,是 3*3
  • 你想在这里达到什么目的?
  • 天哪,这就是我弄错了...我在看 y 而不是 x ..很好解决了这一切..谢谢
  • 这是使用调试器单步调试代码有助于理解代码在做什么的地方。

标签: java output increment


【解决方案1】:

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

【讨论】:

  • 谢谢你说清楚...
【解决方案2】:

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;                        
  } 

【讨论】:

  • 谢谢您,先生...我刚刚完全延迟...看起来是 y 而不是 x
  • @Dana 我们都有那些日子。
【解决方案3】:

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

y = x * x; 

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

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

4 * 4 + 1 是 17 不是 9。

【讨论】:

  • 谢谢..现在说得通了
猜你喜欢
  • 1970-01-01
  • 2013-01-27
  • 2019-09-17
  • 2011-04-20
  • 1970-01-01
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多