简单的控制结构(if语句)

时间:2013-12-12 22:08:02

标签: java if-statement

我是Java世界的新手,目前正在学习IF语句。

在我正在使用的教科书中,它要求我“在不使用任何嵌套的情况下重写以下嵌套的if语句”。

现在,我有两个问题。第一个是关于我是否以正确的顺序读取这个,第二个是关于第1行和第2行是否存在冲突条件(矛盾)。他们要求我重写的问题是:

if ( a < b )
   if (a >= b)
       x = z;
   else
       x = y;

else
  x = z;

由于我对if语句的理解有限,顺序可能如下:

  1. 如果变量a小于b,则执行第一个语句(这是另一个if语句),如果条件为假,则执行SECOND else语句。
  2. 如果变量a等于或大于b,则执行附带的语句,如果条件为false,则执行第一个else语句。
  3. 到目前为止,我是否正确地阅读了此内容?如果我难以理解,我会道歉。

    现在谈到第二个问题;如果第一个if语句出现为真(a小于b)当第一个条件已经为真时,a可能大于或等于b ?这不会有冲突吗?

    感谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

你理解正确。

代码实际上等同于:

if (a < b)
    x=y;
else
    x=z;

如果&lt; b,肯定(a&gt; = b)是假的,你去第一个else语句。如果不是 - 则运行第二个其他语句。

对于每种语言和每种变量类型都是如此,但在某些情况下,如果您不一致地重载运算符,则可能不正确。 另一种情况是,如果你实现了运算符a&lt; b,这样它会改变a的值。 但是,这种情况不应该存在于普通代码中。

答案 1 :(得分:0)

遵循您发布的代码的逻辑,它等同于:

if (a < b)
    x = y;
else
    x = z;