switch、break与continue的用法
一、switch語句
switch語句格式:
{
case常量表達式1:語句1;
case常量表達式2:語句2;
…
case常量表達式n:語句n;
default??:語句n+1;
}
需要注意的是:
(一)所有case后面的表達式這能是這幾種情況:1、枚舉常量(有些書稱為枚舉元素)?2、數值常量?3、字符常量?4、常變量(只能被賦一個值的變量)?5、宏
(二)switch后面括號里的“表達式”允許是任何類型(但在VC++中只允許為int或char類型)。
(三)執行完一個case語句后,流程控制就轉移到下一個case語句繼續執行(case常量表達式只是起語句標號的作用,并不是在該處進行條件判斷。在執行switch語句時,根據switch()中表達式的值找到與之匹配的case語句,就從此case語句開始執行下去,不再進行判斷)
例如:
switch?(i)
{
case?1:?語句1;
case?2:?語句2;
default:?語句3;
case?:?語句4;
}
說明:?當i==1時,從case?1處開始往下一個不落的往下執行,當i==2時,從case?2處開始往下一個不落的往下執行,當i==3時,只執行case?3的語句,當i不等于1,2,3時,會執行defaulr?語句。
(四)switch是選擇不是循環。如果在switch中出現了break?語句,該語句的功能只是退出switch語句轉去執行它下面的語句。在switch中出現continue?是錯誤的,除非switch本身就屬于for或while循環的一部分。
例1.1:
# include <stdio.h>int main(void) {int val;printf("請輸入您要進入的樓層:");scanf("%d", &val);switch (val){case 1:printf("這是一樓!\n");break;case 2:printf("這是二樓!\n");break;case 3:printf("這是三樓!\n");break;default:printf("沒有蓋到這一層!\n");break;}return 0; }你輸入1,會輸出“這是一樓!”,輸入2、3回分別輸出“這是二樓!”、“這是三樓!”,當你輸入的不是1或2或3時,會輸出“沒有這個樓層!”。
二、break?語句
break的用法
break如果用于循環是用來終止循環
break如果用于switch,則是用于終止switch
break不能直接用于if,除非if屬于循環內部的一個字句
例2.1:
# include <stdio.h>int main(void) {switch (1){case 1:printf("今天天氣不好!\n");break; //這里break可以用printf("真的不好!\n");//這個語句不會執行,因為上面的break已經將switch終止}return 0; } 輸出結果為:
例2.2:
# include <stdio.h>int main(void) {int i;for (i=0; i<3; ++i){if (3 > 2)break; //break雖然是if內部的語句,但它終止的卻是外部的for循環!!!printf("真的不好!\n"); //該語句不會被輸出}return 0; } 輸出結果為:
例2.3:
# include <stdio.h>int main() {int x = 1, y = 0, a = 0, b = 0;switch(x) //第一個switch{case 1:switch(y) //第二個switch{case 0:a++;break;//終止的是第二個switchcase 1:b++;break;//終止的是第一個switch}b = 100;break;case 2:a++;b++;break;}printf("a = %d, b = %d\n", a, b);return 0; } 輸出結果為:
例2,4:
# include <stdio.h>int main() {int i, j;<span style="white-space:pre"> </span>for (i=0; i<3; ++i){for (j=1; j<4; ++j)<span style="white-space:pre"> </span>break; // 在多層循環中,<style type="text/css">P { margin-bottom: 0.21cm; direction: ltr; color: rgb(0, 0, 0); text-align: justify; }P.western { font-family: "Times New Roman",serif; font-size: 10pt; }P.cjk { font-family: "宋體"; font-size: 10pt; }P.ctl { font-family: "Times New Roman",serif; font-size: 10pt; }break只能終止最里面包裹它的那個循環</style>break只能終止最里面包裹它的那個循環printf("任重而道遠!\n");}return 0; } 輸出結果為:
三、continue?語句
continue的用法
1、
for?(1;?2;?3)
{
A;
B;
continue;//如果執行continue語句,則執行完該語句后,會執行語句3,C、D會被跳過去,不會被執行
C;
D;
}
2、
while?(表達式)
{
A;
B;
continue;//如果執行continue語句,則執行完該語句后,會執行表達式,C、D會被跳過去,不會被執行
C;
D;
}
例3.1:
# include <stdio.h>int main() {int i;i = 0;while (i < 3){printf("城關東邊和南邊的人比較多!\n");printf("城里人相對較少!\n");i++;continue;//執行完continue語句后,下面的語句(12行語句)不會被執行printf("天還算可以!\n");//12行}return 0; } 輸出結果為:
例3.2:
# include <stdio.h>int main() {int i;i = 0;for (i=1; i<3; ++i){printf("城關東邊和南邊的人比較多!\n");printf("城里人相對較少!\n");continue;//執行完continue語句后,下面的語句(11行語句)不會被執行printf("天還算可以!\n");//11行}return 0; } 輸出結果為:
例3.3:
# include <stdio.h>int main(void) {int i = 0, s = 0;do{if (i%2){i++;continue;//執行完該語句會跳到14行}i++;s+=i;} while(i < 5);//14行printf("%d\n",s);return 0; } 輸出結果為;
【所有代碼均在windows系統下VC++6.0下運行通過】
(如有錯誤,敬請指正)
總結
以上是生活随笔為你收集整理的switch、break与continue的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uni-app image组件当显示不出
- 下一篇: 时间序列预测-入门概念