問題闡述
判斷下列程序代碼的運(yùn)行結(jié)果,如何修改代碼中的條件判斷才能正確執(zhí)行 if…else語句。
public class Example {public static void main(String[] args) {
if(true)
System.out.println("合法");
else;
System.oout.println("非法");
}
}
解答
問題闡述中的代碼,運(yùn)行后將顯示如圖 4.2 所示的結(jié)果。
如果想讓上述代碼中的條件判斷正確執(zhí)行 if…else 語句,需要將 else 后面的分號(hào)去掉。去掉該分號(hào)后,再次運(yùn)行將顯示如圖 4.3 所示的結(jié)果。
點(diǎn)評(píng)
分號(hào)是 Java 語句的結(jié)束符,當(dāng)遇到該符號(hào)時(shí),編譯器認(rèn)為是一條語句的終止,但是該符號(hào)如果出現(xiàn)在不該出現(xiàn)的位置,則會(huì)導(dǎo)致程序異常的運(yùn)行結(jié)果,這是編譯器無法檢測(cè)到的。例如,if 語句用于程序流程控制的條件判斷,它可以使用 if…else 組成復(fù)雜的條件判斷,如果在 if 語句條件判斷之后直接添加了分號(hào),或者在 if…else 語句的 else 語句后添加了分號(hào),就會(huì)立刻結(jié)束該 if 語句,使它失去作用。因此,一定要留 if…else 語句是否合理地使用分號(hào)結(jié)束該語句。