int i的输出= 10 + 11--12 + + 13--14 + + 15;如何?

时间:2018-08-03 07:23:39

标签: java int operators

无法确定输出结果如何? 我运行了这段代码,答案为75: 请为此说明逻辑。

public class MainClass{

    public static void main(String[] args)
    {
        int i = 10 + + 11 - - 12 + + 13 - - 14 + + 15;

        System.out.println(i);
    }
}

5 个答案:

答案 0 :(得分:5)

您必须了解操作员如何工作;

int i = 10 + +11 - -12 + +13 - -14 + +15;
        10 + 
             11 (- - =>) +
                           12 (+ + =>) +
                                         13 (- - =>) +
                                                       14 (+ + =>) + 
                                                                     15

最终结果是:

int i = 10 + 11 + 12 + 13 + 14 + 15;//===> 75

答案 1 :(得分:4)

在Java中,a - - b被解析为a - ( -b )。第一个-是减法。第二个是否定。但是(从高中数学中)减去负数与添加正数相同...

同样,a + + b被解析为a + ( +b ) .... etcetera。


警告:如果您曾经在现实生活中编写过这样的代码,则速激肽会帮助您:https://xkcd.com/292/

答案 2 :(得分:1)

这里--充当+,而++充当+ (基本数学逻辑)

所以基本上您是对所有数字求和。

逻辑上

 int i = 10 + + 11 - - 12 + + 13 - - 14 + + 15; // i=75

成为:-

 int i = 10 + 11 + 12 + 13 + 14 + 15;   // i = 75

答案 3 :(得分:0)

我在C ++中执行了此操作,发现的答案是75。 我的结论是 它会检查运算符--,如果我们将符号相乘,则它变为 + ,因此它将所有数字相加。 我为您尝试了一个反例

int i = 10 + +11 - -12 + +13 - +14 + +15;

其输出为 47 ,即 10 + 11 + 12 + 13-14 + 15 。这意味着在这种情况下(-,+)与14变为-,因此它会根据规则从左侧开始从金额计算中减去14。

感谢您提高知识水平。

答案 4 :(得分:0)

public class MainClass   {

  public static void main(String[] args)
   {
    int i = 10 + + 11 - - 12 + + 13 - - 14 + + 15;

    System.out.println(i);
   }
}
  
    

这是怎么回事?     是10 +(+ 11),我们能看到10 + + 11     通过此操作,它将获得值为21

         

然后是第二个21-(-12),但我们看到它是10 + + 11--12 = 33

         

那么第三种情况是33 + + 13,但它是10 + + 11--12 + + 13 = 46

         

然后是第四位46-(-14),但我们将其视为10 + + 11--12 + + 13--14 = 60

         

然后达到第五个60 +(+14),但我们将其视为10 + + 11--12 + + 13--14 + + 15 = 75

  

这一切都是因为--是加成