從頭學習C語言之switch語句和分支嵌套

switch 語句:

一個 switch 語句允許測試一個變量等於多個值時的情況。每個值稱為一個 case,且被測試的變量會對每個 switch case 進行檢查。

註意事項:

  • 在case每一行的語句或程序塊後面要加上break;(否則程序將會把所有程序塊從前到後運行一遍。
  • default是可選的,如果上面的case中沒有符合的才會選擇default(屬於備選情況),但是如果不加default則switch語句則不會做出任何響應。

語句形式:

…//其他語句
switch(表達式)
{
case 常量表達式1:語句或程序塊1
case 常量表達式2:語句或程序塊2

case 常量表達式n:語句或程序塊n
default:語句或程序塊n+1
}
…//其他語句

流程圖:

流程圖

示例:根據評級查分數區間:

   #include<stdio.h>
   int main()
   {
     char grade;
     printf("請輸入你的成績:");
     scanf("%c",&grade);
     switch (grade)
    {
      case'A':printf("你的成績大於九十。\n");break;
      case'B':printf("你的成績在八十分到九十分之間。\n");break;
      case'C':printf("你的成績在七十分到八十分之間。\n");break;
      case'D':printf("你的成績在六十分到七十分之間。\n");break;
      case'E':printf("你的成績在六十分以下。\n");break;
      default:printf("請輸入正確的評級。\n");                                    
    }
   return 0;
  }

分支結構的嵌套:

套娃,一個if語句套一個if語句或者一個else語句套一個if語句。

註意事項:

  • else總是與其最近的if匹配:無論是switch或if語句,一定要保持寫花括號的習慣,否則容易出bug。
  • 在if嵌套時,要加入getchar()來屏蔽回車鍵,防止在判斷下一個表達式時,將回車鍵算作一個常量。
  • 用if判斷單個字符時要加單引號,比如例三。

語句形式:

…//其他語句
if(表達式)
{
if(表達式){
…}
else{

}
}
else{

}
…//其他語句

上方語句為簡寫形式,講花括號的前者放到if後面也可以。

流程圖:

流程圖2

示例:

例一:判斷兩個數的大小

   #include<stdio.h>
   int main()
   {
     int a,b;
     printf("請輸入兩個數,以供於判斷大小:");
     scanf("%d %d",&a,&b);
     if(a<b)
     {
     printf("%d<%d\n",a,b);
    }
    else
    {
      if(a==b)
     {
        printf("%d=%d\n",a,b);
      }
      else
      {
        printf("%d>%d\n",a,b);                                                   
      }
    }
    return 0;
 }

例二:約小花出門玩:

   #include<stdio.h>
   int main()
   {
     char israin,isfree;
     printf("是否有空?(Y/N)\n");
     scanf("%c",&isfree);
     if(isfree=='Y')
     {
     printf("這就很好嘍!\n");
    getchar();//這裡是用getchar()來頻屏蔽回車鍵
    printf("是否下雨?(Y/N)\n");
    scanf("%c",&israin);
      if(israin=='Y')
   {                                                                          
        printf("記得帶傘哦!!!\n");
      }
      else
      {
       printf("那你快出來吧!!!\n");
    }
    }
    else
    {
      printf("那算瞭!\n");
    }
    return 0;
  }
 

例三:小花做我女朋友!!

   #include<stdio.h>
   int main()
   {
     char a,b;
     printf("小花,你有男朋友嗎?(Y/N)\n");
     scanf("%c",&a);
    if(a=='Y')
    {
       printf("那你們在一起吧!\n");
    }
    else
    {
      getchar();
      printf("做我女朋友好不好?(Y/N)\n");
     scanf("%c",&b);
    if(b=='Y')
      {
        printf("oh Yeah!\n");
      }
      else 
      {
       printf("啊這!!!\n");
      }
    }
    return 0;                                                                    
  }

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: