无法确定输出结果如何? 我运行了这段代码,答案为75: 请为此说明逻辑。
public class MainClass{
public static void main(String[] args)
{
int i = 10 + + 11 - - 12 + + 13 - - 14 + + 15;
System.out.println(i);
}
}
答案 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
这一切都是因为--是加成