繁体   English   中英

为什么以下代码不起作用?

[英]Why does the following code not work?

我现在想知道为什么两个小时后此代码无法产生预期的结果。 如果我输入3个整数,例如3、4和5,则应该给我全部27种可能的总和(假设数字可以为正,负或零)。

因此它应产生以下内容:

-3-4-5 = -12

-3-4 + 0 = -7

-4-4 + 5 = 3

等等...

  int a = Integer.parseInt(args[0]);
  int b = Integer.parseInt(args[1]);
  int c = Integer.parseInt(args[2]);

  for (int k = -4; k <= -2; k++)
     for (int i = -4; i <= -2; i++)
        for (int j = -4; j <= -2; j++)
       {  

         if (k == -4)
           a = -a;
         else if(k == -3)
           a = 0;
         else 
            a = a;

        if (i == -4)
           b = -b;
         else if(i == -3)
           b = 0;
         else 
           b = b;


        if (j == -4)
           c = -c;
         else if(j == -3)
           c = 0;
         else 
            c = c;

         System.out.println(a + b + c);
     }

您不应修改abc因为这仅意味着您无法在第一个循环之后使用此值。 您想探索在添加,减去或忽略每个值时会发生什么。 这与将其乘以+ 1,-1或0相同。

简而言之。

int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);

for (int ma = -1; ma <= +1; ma ++)
  for (int mb = -1; mb <= +1; mb ++)
    for (int mc = -1; mc <= +1; mc ++)
       System.out.println(ma * a + mb * b + mc * c);

这将打印出27个值,尽管它们可能不是唯一的。

如果您必须盯着代码2分钟以上,则应该使用调试器来帮助调试代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM