Java控制if else语句

时间:2016-08-12 18:46:13

标签: java if-statement

我正在使用下面的自由文本来学习java的介绍,我无法理解代码段之间的区别:

http://math.hws.edu/eck/cs124/downloads/javanotes7-linked.pdf

示例1

    int x;
    x = -1;
    if (x < 0)
        x = 1;
    else
        x = 2;

示例2

    int x;
    x = -1;
    if (x < 0)
        x = 1;
    if (x >= 0)
        x = 2;

示例1 中,x为1;在示例2 中,x是2。

在右边,如果-1不是&gt;或者= 0然后输出不应该是1?有人可以解释为什么输出会改为2?

3 个答案:

答案 0 :(得分:5)

评估第二个if语句后,C第一个语句已生效 - 因此x的值现在为1.

x

if (x < 0) x = 1; if (x >= 0) //x is 1 because you've already evaluated the above! x = 2; 关键字创建互斥分支:只能执行一个分支。所以,如果你有这个,行为将如你所愿:

else

答案 1 :(得分:2)

在示例1中,只会执行一个语句x = 1;x = 2;,因为它使用if...else语句。

在示例2中,两个语句都将被执行,因为它使用两个单独的if语句,并且因为它们在评估时都是正确的。

答案 2 :(得分:0)

在第二个例子中;首先,你要经历第一个if条件:

x = -1;

if (x < 0) x = 1;

x小于0,因此x变为1。

当你转到第二个if条件时:

if (x >= 0) x = 2;

x 1,且1大于0,因此x变为2.