[英]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);
}
您不应修改a
, b
或c
因为这仅意味着您无法在第一个循环之后使用此值。 您想探索在添加,减去或忽略每个值时会发生什么。 这与将其乘以+ 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.