C語言中的分支和循環語句

一.switch語句

switch語句也是一種分支語句,常常用於多分支的情況。

比如

輸入1:輸出星期一

輸入2:輸出星期二

輸入3:輸出星期三

輸入4:輸出星期四

輸入5:輸出星期五

輸入6:輸出星期六

輸入7:輸出星期日

輸入一個數字,根據這個數字決定輸出星期幾。此問題的代碼如下:

#include<stdio.h>
#include<stdlib.h>

int main(){
    printf("輸入一個表示星期的數字(1-7):");
    int num=0;
    scanf("%d",&num);
    switch(num){
        case 1:
            printf("星期一\n");
            break;
        case 2:  
           printf("星期二\n");
           break;
         case 3:
            printf("星期三\n");
            break;
         case 4:
            printf("星期四\n");
            break;
         case 5:
            printf("星期五\n");
            break;
         case 6:
            printf("星期六\n");
            break;
         case 7:
            printf("星期日\n");
            break;
         default:
            //如果前面所有的 case 都沒有命中,於是就走到 default 分支中
            //如果使用了 switch 語句,必須要寫 default 分支 
            printf("非法輸入\n");
            break;          
    }
    system("pause");
    return 0;
}

當然,任何語句都有其缺點,比如switch case語句侷限性:

1.本質上這個和else if相比也沒有簡單到哪裏去

2.如果忘記寫break,代碼的執行過程就會不大一樣,會嘗試着繼續執行

3.case語句中無法定義變量

4.case語句判定的條件必須是int long short char 等類型的變量

二.while語句中的break和continue

1.有關break的代碼介紹爲

#include<stdio.h>
#include<stdlib.h>

int main(){
    //從1循環到10,如果一旦發現 數字5就結束循環
    int i=1;
    while(i<=10){
        printf("%d\n",i);
        if(i==5){
            //跳出循環
            break;
        }
        i+=1;
    }
    system("pause");
    return 0;
}

2.有關continue的代碼介紹爲

#include<stdio.h>
#include<stdlib.h>
int main(){
    //for語句也是用來表示循環.
    //while語句容易遺漏循環變量的更新操作
    //for循環就是爲了解決 while 循環的這個缺點
    
    //從1循環到10,如果發現數字5,就跳過5,繼續循環後面的數字
    int i=1;
    while(i<=10){
        if(i==5){
            i+=1;
            continue;
        }
        printf("%d\n",i);
        i+=1;
    }
    system("pause");
    return 0;
}

三.for循環

for循環語句格式:

for(表達式1;表達式2;表達式3)

循環語句;

舉個例子:

#include<stdio.h>
#include<stdlib.h>
int main(){
    //從 1 打印到 10,不打印5
    
    //for循環的執行過程
    //1.執行表達式1(初始化部分)
    //2.執行表達式2,判斷循環體是否要執行
    //3.執行循環體代碼
    //4.執行表達式3,更新循環變量
    //5.執行表達式2,判定循環體是否要執行
    //6.如果循環體中帶有break,直接跳出循環
    //7.如果循環體中帶有continue,跳過本次循環的循環體代碼,執行表達式3,再執行表達式2
    //後邊重複 2 3 4 過程....
    //如果省略了表達式1,只要對變量進行過初始化的話,不影響
    //如果省略了表達式2,循環成了死循環
    //如果省略了表達式3,循環變量就沒法更新了,其實
    //並不是沒法更新,可以把更新語句放到循環體中
    
    //for( ;i<=10; ){
    //    if(i==5){
    //        ++i;        
    //        continue;
    //    }
    
    //從 1 打印到 10,不打印 5
    
     int i=1;
    for(i=1;i<=10;++i){
        if(i==5){
            continue;
        }
        printf("%d\n",i);
    }
    
    //while語句
    //int i=1;
    //while(i<=10){
    //    if(i==5){
    //        ++i;
    //        continue;
    //    }
    //    printf("%d\n",i);
    //    ++i;
    //}
    system("pause");
    return 0;
}

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章