if...else 條件結構中,如果某個分支只包含一條命令,那么是可以省略大括號{}的。比如上一節(jié)的練習,可以簡化為:
請注意,如果分支中包含2條以上的命令,是不能省略{}的。
如果 if 和 else 比較多,又省略了{},怎么判斷那一個 if 和哪一個 else 是一對呢?請看下面的代碼:
當出現多個 if 和 else ,又沒有{}來界定范圍時,請參考下面2條原則:
①每一個 else 與前面離它最近的 if 配對。按照這個原則,上面示例代碼的兩個 else 都與第二個 if 配對,這顯然是不可能的,于是又有了第二個原則。
②多個 else 都與同一個 if 相近時,最內層的 else 優(yōu)先配對。這樣,第一個 else 處于內層,就與第二個 if 優(yōu)先配對,第二個 else 只能與第一個 if 配對。上面的示例代碼會輸出“C”。
根據這兩個原則,上面的代碼等同于如下的規(guī)范代碼:
編寫條件結構時,盡可能加上 {} 可以省掉不必要的錯誤和麻煩。
右邊的代碼省略掉了 if...else 結構的所有{},運行后卻什么都不輸出。
請給代碼合適的位置補上 {} ,使程序能夠輸出“6”。
根據 else 和 if 的配對原則推斷,第二個 else 與第三個 if 配對,第一個 else 與第二個 if 配對,第一個 if 沒有與之配對的 else 。所以,當第一個 if 的條件為 false 時,不會輸出任何內容。
我們可以把第二個 if 及其分支用 {} 括起來,代碼片段如下:
if (x >= y) { if (x >= 5) Console.WriteLine("5"); } else if (y >= 6) Console.WriteLine("6"); else Console.WriteLine("7");
由于第二個 if 進入了 {} 里面,第一個 else 不能與之配對(因為 else 不在那個{}中),只好與第一個 if 配對,程序邏輯就發(fā)生了改變。
請驗證,完成請求
由于請求次數過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報