首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么下面的代码不能工作?

为什么下面的代码不能工作?
EN

Stack Overflow用户
提问于 2015-12-12 00:37:41
回答 1查看 41关注 0票数 0

我现在想知道为什么这段代码没有产生预期的结果。如果我输入3个整数,比如3,4和5,它应该给出所有27个可能的和(假设数字可以是正数、负数或零)。

因此,它应产生以下内容:

-3-4-5 = -12

-3-4+0 = -7

-4-4+5 = 3

等等..。

代码语言:javascript
复制
  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);
     }
EN

回答 1

Stack Overflow用户

发布于 2015-12-12 00:46:44

您不应该修改abc,因为这只意味着您不能在第一个循环之后使用这个值。您希望探索在添加、减去或忽略每个值时会发生什么。这与将其乘以+1、-1或0是一样的。

总之。

代码语言:javascript
复制
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分钟,您应该使用调试器来帮助调试您的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34234823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档