C++中的switch語句的break問題
阿新 • • 發佈:2018-12-30
今天筆試360了,再次遇到這個簡單但是又容易出錯的問題。
首先看下正確的寫法:
程式輸出是:012int main() { int i; for(i=0;i<3;i++) { switch(i) { //switch語句一定加大括號 case 0: //注意格式 case 0: 這裡不用加大括號 cout<<i; break; //每個case後要break case 2: cout<<i; break; default: cout<<i; break; } } system("pause"); return 0; }
加break的意思是說,找到合適的case執行後,下面的case就不再執行,而是退出當前switch語句。
-------------------------------------------------------------------------------------------------------------------------------------------------
容易考到的點是不加break會怎樣?
看下面程式碼。
int main() { int i; for(i=0;i<3;i++) { switch(i) { case 0: cout<<i; case 2: cout<<i; default: cout<<i; } } system("pause"); return 0; }
程式輸出是000122
int main()
{
int i;
for(i=0;i<3;i++)
{
switch(i)
{
case 0:
cout<<i;
case 2:
cout<<i;
break;
default:
cout<<i;
}
}
system("pause");
return 0;
}
程式輸出是0012
結論:就是說找到適合的case前不執行,找到對應case後都執行,直到遇到break或者switch語句結束!