看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《Cczr (洩洩歷啊)》之銘言: : 現在我有一個巢狀if的code : 我知道在迴圈裏面有break可以跳出迴圈 : 我的問題如下: : 有沒有辦法在最外層的if內 : 只要有任何一個if不成立 : 則就會跳出整個敘述 (跳出最外層的if) : 有這種語法嗎? : 因選擇性敘述裡好像不能使用break : 懇請高手賜教 : if((char)c == h) : { : c = reader.read(); : if((char) c == r) : c = reader.read(); : else(); 從你的碼看起來,你要的是程式先判斷 (c == h ?) 然後依序讀取並判斷是否為 r, e, f, a, b, 如果能讀到 b 就將 count + 1. 在 r-e-f-a- 過程中一不符合 判斷就要跳開. 由於有執行順序, 並且中途失敗就要中斷,可以利用 && 的 short-cut circuit evaluation 特性,以及逗號的 sequence point 特性, (參考 Sequence Point Wikipedia http://en.wikipedia.org/wiki/Sequence_point ) 把程式寫成: if ( (char)c == 'h' && (c = reader.read(), (char)c == 'r') && (c = reader.read(), (char)c == 'e') && (c = reader.read(), (char)c == 'f') && (c = reader.read(), (char)c == 'a') && (c = reader.read(), (char)c == 'b') ) { count++; } 最後講講 break. break 這個關鍵字無論如何只會跳出一層迴圈或離開一個 block (後者只用在 switch 區塊). 所以你的需求沒有基本語法可支援. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.212.212
loveme00835:你跟 short circuit 是啥關係? XD 03/18 22:46
yauhh:&&有 short-cut circuit evaluation 的特性 03/18 22:48
yauhh:喔,我懂了. 因為我一直覺得這個特性很好用 03/18 22:49
ericinttu:先推這篇好了 XD 03/18 23:06
milkdragon:推這篇!! 03/19 00:31
tomap41017:推~ 03/19 17:26
xatier:推 03/20 15:49