【C語言經典例項】-switch分支結構-模擬自動售貨機
阿新 • • 發佈:2019-02-04
在本例項中,我們設計一個自動售貨機的程式,執行程式,提示使用者輸入要選擇的選項,當用戶輸入以後,提示所選擇的內容。本程式使用switch分之語句,來解決程式中的選擇問題,效果如圖所示:
程式碼如下:
#include<stdio.h> #include<stdlib.h> void main() { int button; //定義一個字串陣列,存放商品的名稱 char *good[]={"巧克力","奶油蛋糕","香蔥餅乾","雪碧 ","可樂"}; //定義一個浮點型陣列,存放商品的價格 float price[]={5,2.5,4.5,3,3}; system("cls"); //顯示窗體的資訊 printf("********************\n"); printf("* 可選擇的按鍵 *\n"); printf("* 1.巧克力 *\n"); printf("* 2.奶油蛋糕 *\n"); printf("* 3.香蔥餅乾 *\n"); printf("* 4.雪碧 *\n"); printf("* 5.可樂 *\n"); printf("*********************\n"); printf("* 從1~5中選擇按鍵:*\n"); //輸入資料 scanf("%d",&button); switch(button) { case 1: printf("你選擇了 %s \n",good[button-1]); printf("售價 %2.1f 元 \n",price[button-1]); break; case 2: printf("你選擇了 %s \n",good[button-1]); printf("售價 %2.1f 元\n ",price[button-1]); break; case 3: printf("你選擇了%s \n",good[button-1]); printf("售價 %2.1f 元\n",price[button-1]); break; case 4: printf("你選擇了 %s \n",good[button-1]); printf("售價 %2.1f 元\n",price[button-1]); break; case 5: printf("你選擇了 %s \n",good[button-1]); printf("售價 %2.f 元\n",price[button-1]); break; default://提示輸入有誤 printf("\n 輸入錯誤 \n"); break; } printf("\n"); system("pause"); }
本例中主要用到了switch語句,switch語句是多分支選擇語句,其一般形式如下:
swtich(表示式)
{
case 常量表達式 1: 語句 1 ;
case 常量表達式 2: 語句 2 ;
......
case 常量表達式 n: 語句 n ;
default: 語句 n+1;
}
其語義是:計算表示式的值,並逐個與其後的常量表達式值比較,當表示式的值與某個常量表達式的值相等時,即執行其後的語句,然後不再進行判斷,繼續執行case後的所有語句。當表示式的值與所有case後的常量表達式的值均不相同時,則執行default後的語句。
關於switch的幾點說明:
1.每一個case的常量表達式的值必須互不相同,否則會出現相互矛盾的現象
2.各個case和default的出現次序不影響執行結果。
3.在執行一個case分支後,要終止switch語句的執行,則在相應的語句後加break來實現。
在定義存放商品名稱的字串陣列時,是這樣定義的:
//定義一個字串陣列,存放商品的名稱
char *good[]={"巧克力","奶油蛋糕","香蔥餅乾","雪碧 ","可樂"};
這是一個數組,數組裡面的元素是指標,用於指向個字串的地址 ,地址->字串的地址