Java控制if else语句

Ari*_*iel 0 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;
Run Code Online (Sandbox Code Playgroud)

例2

    int x;
    x = -1;
    if (x < 0)
        x = 1;
    if (x >= 0)
        x = 2;
Run Code Online (Sandbox Code Playgroud)

在例1中,x是1; 在示例2中,x是2.

在右边,如果-1不是>或=到0那么输出不应该是1?有人可以解释为什么输出会改为2吗?

Mar*_*ers 5

一旦评估了第二个if语句,x第一个语句已经生效 - 所以值x现在为1.

if (x < 0)
   x = 1;


if (x >= 0) //x is 1 because you've already evaluated the above!
   x = 2;
Run Code Online (Sandbox Code Playgroud)

该else关键字创建互斥的分支:只有一个可以被执行.所以,如果你有这个,行为将如你所愿:

if (x < 0)
   x = 1;
else if (x >= 0)
   x = 2;
Run Code Online (Sandbox Code Playgroud)