看板 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(); : if((char) c == e) : c = reader.read(); : else(); : if((char) c == f) : c = reader.read(); : else(); : if((char) c == a) : c = reader.read(); : else(); : if((char) c == b) : count=count+1; : else(); : } : else : {} 把排版弄好看一點, 順便幫你去掉不必要的程式碼.. if((char)c == h) { c = reader.read(); if((char) c == r) c = reader.read(); if((char) c == e) c = reader.read(); if((char) c == f) c = reader.read(); if((char) c == a) c = reader.read(); if((char) c == b) count = count + 1; } 你可以用層數較多的 if 來把它翻修一下, 就如同前一篇回文一 般, 但我個人比較推薦用迴圈來改寫. char patterns[] = { r, e, f, a, b }; size_t index = 0; if( (char)c == h ) { for( ; index != sizeof(patterns); ++index ) { c = reader.read(); if( (char)c != patterns[index] ) break; } } // 順利讀到預期的5種字元 if( index == sizeof(patterns) ) ++count; 如此一來要新增想比對的字元也不是件難事了, 以為這是老生常 談嗎? 如果本來的結構是像下面這樣: if((char)c == h) { c = reader.read(); if((char) c == r) c = reader.read(); if((char) c != e) c = reader.read(); if((char) c == f) c = reader.read(); if((char) c == a) c = reader.read(); if((char) c == b) count = count + 1; } 也是可以改成迴圈來做, 只不過還需要另外一個陣列來做邏輯判 斷的切換: char patterns[] = { r, e, f, a, b }; bool invert[] = { false, true, false, false, false }; size_t index = 0; if( (char)c == h ) { for( ; index != sizeof(patterns); ++index ) { c = reader.read(); if( ((char)c != patterns[index]) ^ invert[index] ) break; } } // 順利讀到預期的5種字元 if( index == sizeof(patterns) ) ++count; 完成. -- ◢████ ◢█ ◢██◣ ◢█ ◢███ ◢█ T-ara版怎麼去 ████◢█████s ~> T-ara ███ █ ◢██ 歡迎您的光臨 ███████████恩靜智妍孝敏 ███ ██ 素妍居麗寶藍 ████◥██◤ █████花英 ψmakigoto123 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.115
tropical72:推~其實我真的看不到原原po的 else 到底是放哪裡. 03/18 20:52
原原po的程式碼有沒有拿去編過還是一個謎...我猜是沒
ericinttu:我比較好奇的是原原PO腦子裡想做的是什麼? XDDD 03/18 21:03
對吼! 原po說的是我自己, 改一下好了...
tropical72:抱歉,我也更正一下,1F的原po指的是原原po. 03/18 21:49
已更正 :) ※ 編輯: loveme00835 來自: 140.121.197.115 (03/18 22:49)
Ebergies:我一直覺得很奇怪, 原 po 不是應該指第一篇文的人嗎...? 03/19 11:26