Re: [問題] 有關於巢狀If敘述
※ 引述《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
推
03/18 20:52, , 1F
03/18 20:52, 1F
原原po的程式碼有沒有拿去編過還是一個謎...我猜是沒
推
03/18 21:03, , 2F
03/18 21:03, 2F
對吼! 原po說的是我自己, 改一下好了...
推
03/18 21:49, , 3F
03/18 21:49, 3F
已更正 :)
※ 編輯: loveme00835 來自: 140.121.197.115 (03/18 22:49)
推
03/19 11:26, , 4F
03/19 11:26, 4F
討論串 (同標題文章)