2013-12-12 68 views
1

我是Java世界的新手,目前學習IF語句。簡單的控制結構(如果語句)

在我目前使用的文本書中,它要求我'不使用任何嵌套重寫下面的嵌套if語句'。

現在,我有兩個問題。第一個是關於我是否以正確的順序閱讀這個文章,第二個是關於第一行和第二行是否存在矛盾的條件(一個悖論)。這個問題的問題,他們問我改寫如下:

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

else 
    x = z; 

以我有限的if語句,則順序很可能是瞭解以下內容:

  1. 如果變量a小於b然後執行第一個語句(這是另一個if語句),如果條件爲假,則執行SECOND else語句。
  2. 如果變量a等於或大於b則執行伴隨的語句,或者如果條件爲假,則執行FIRST else語句。

我到目前爲止閱讀正確嗎?如果我讓事情難以理解,我很抱歉。

現在進入第二個問題;如果第一條if語句正確(a小於b),當第一個條件爲真時,a如何可能大於或等於b?這不會是衝突嗎?

感謝您的幫助:)

回答

0

您明白正確。

的代碼實際上相當於:

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

如果< B,比肯定(A> = b)是假的,你去第一個else語句。如果不是 - 第二個else中的語句被運行。

對於每種語言和每種變量類型都是如此,但在某些情況下,如果您不一致地重載運算符,則可能不是這樣。 另一種情況是,如果您實施運營商a < b,那麼它會改變a的值。 但是,這種情況下不應該存在於正常的代碼中。

0

按照您發佈的代碼的邏輯,它相當於:

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