1. 程式人生 > >c語言選擇結構語句

c語言選擇結構語句

if-else

在C語言中,經常使用選擇結構語句,來實現很多對應的功能.

直接使用if-else語句

scanf("%d",&a)
if(a==1)
{
   printf("you input is 1\n");
}
else 
    printf("you input is another\n");

上面的程式碼表示,如果a=1,輸出you input is 1。如果不是,輸出you input is another

這是基本的選擇語句。if或者else條件後面只有一條語句時,花括號可寫可不寫,為了美觀和規範,我們一般寫上。

巢狀使用if-else語句

先來看下面的程式碼

示例程式碼

#include<stdio.h>

int main()
{

    int a,b,c;

    scanf("%d",&a);//輸入a

    if(a==0)  //如果a等於0,進入,
    {
        printf("welcome here\n");

        scanf("%d",&b); //輸入b

        if(b>=5)   //判斷b是不是大於等於5,如果大於,輸出you choose the right,該函式體結束
        {
            printf("you choose the right\n");
        }
        else
        {     
            printf("choose again\n");    //如果不滿足b>=5,列印choose again,函式結束
        }
    }
    else
        puts("hello world");
}

一個if對應一個else,所以在編寫程式碼的時候,如果使用的if-else較多,應當注意新增相應的花括號,增加程式碼的可讀性和不易出錯性。在使用了if以後,如果不需要另外的條件判斷,就可以不使用else,

----------------------------------------------------------分割線------------------------------------------------------

switch-case

C語言中,switch的執行規則是,判斷case後面的常量switch後面的表示式是否相匹配,如果匹配,就執行case後面的程式程式碼,直到遇到break退出。

示例程式碼
#include<stdio.h>
int main() 
{
int num;
while(1)
{
printf("******************************************\n"); //介面
printf("-------------主選單介面------------------\n");
printf("------------1:輸出hello-------------------\n");
printf("------------2:輸出world------------------\n");
printf("------------3:輸出welcome--------------\n");
printf("------------4:登出------------------------\n");
printf("******************************************\n");
printf("請選擇:\n");  
scanf("%d",&num);  //輸入選項
switch(num)
{

case 1:
    printf("hello\n");
break;    //break表示跳出switch選擇結構,記住,是跳出switch,不是跳出迴圈

case 2:
   printf("world\n");
break;

case 3:
   printf("welcome\n");
break;

case 4:
   sleep(1); //等待1s後
exit(0); //表示直接退出函式

default:   //表示如果輸入1,2,3,4之外的選項,就直接退出switch
break;

}

}

return 0;

}

分析:

1、在這裡說明一下switch case語句中的break。break是可加可不加的。比如case 1後面沒有break,那麼當我們輸入1,匹配成功,

就會列印hello。然後會自動往下走,執行case 2後面的語句,直到遇到break。如果case 2還是沒有break,就會繼續往下執行case 3:

中的語句,遇到break後結束。如果後面都沒有break,就會依次執行整個switch case中的程式。

2、exit(0)表示正常執行程式並退出。    exit(1)表示非正常執行程式導致退出。一般0表示正常退出,非0為異常。

在單個程式中看不出作用,但是如果在一個程式中呼叫別的程式,這個返回值就可以看出來呼叫的程式執行有沒有異常。

因為數字會被寫入環境變數ERRORLEVEL中,其他程式可以由此判斷程式的結束狀態。

--------------------------------------------分割線--------------------------------------------------------------------------

這部分內容簡單易懂,但是在C語言中卻是十分重要的知識點,條件判斷在日常開發經常需要用到,尤其是If-else。