Re: [問題] if else 問題
恕刪
原po的問題其實在寫互動式程式時常會遇到
基本型就是,我要對不同的輸入做反應
但當使用者的輸入不符合規定時,希望讓他重新輸入
一般的作法就是用一個while把判斷式合不合規定的判斷式包起來
比如說
你本來寫
(因為怕型別不合,所以輸入一律當成字串)
string a;
cin>>a;
if(a=="1")
{
//do something
}
else if (a=="22")
{
//do something
}
就可以改成
string a;
while(1)
{
cin>>a;
if(a=="1")
{
//do something
break;
}
else if (a=="2")
{
//do something
break;
}
else
{
cout<<"please enter again!\n";
}
}
不過如果是寫成switch case 就會麻煩一點(因為沒有辦法從case中直接跳出來)
大概會寫成
char a;
flag=1;
while(flag==1)
{
cin>>a;
switch(a)
{
case 1:
//do something
flag=0;
break;
case 2:
//do something
flag=0;
break;
default:
cout<< " please enter again \n";
}
}
然後如果一次輸入好幾個字元的話它會一次讀一個
如果希望每次都重新輸入的話,就要先把stdin清掉
以上應該算是最簡單的處理方法了吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.57.112.182
推
10/04 02:04, , 1F
10/04 02:04, 1F
→
10/04 02:05, , 2F
10/04 02:05, 2F
→
10/04 09:26, , 3F
10/04 09:26, 3F
改了
※ 編輯: mantour 來自: 61.57.112.182 (10/04 10:18)
→
10/04 10:22, , 4F
10/04 10:22, 4F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
3
7
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章