日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言switch scanf语句,C语言中scanf函数与switch语句

發(fā)布時間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言switch scanf语句,C语言中scanf函数与switch语句 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

----------------switch----------------

1)使用格式

switch(表達式){

case 常量表達式1: 語句1;

case 常量表達式2: 語句2; ...

case 常量表達式n: 語句n;

default: 語句n+1;

}

判斷月份代碼實現(xiàn)

int main(int argc, const char * argv[]) {

//定義變量

int month;

//提示用戶輸入一個月份

printf("請輸入一個月份,范圍1-12之間:

");

//接收用戶輸入的月份

scanf("%d",&month);

//校驗

if (month<1 || month>12) {

printf("月份不合法!

");

return 0;

}

//判斷處于哪個季節(jié)

switch (month) {

case 12:

case 1:

case 2:

printf("冬季,男人最討厭的季節(jié)

");

break;

case 3:

case 4:

case 5:

printf("春季,一個充滿生機的季節(jié)

");

break;

case 6:

case 7:

case 8:

printf("夏季,一個充滿黑絲的季節(jié)

");

break;

case 9:

case 10:

case 11:

printf("秋季,一個不安分的季節(jié)

");

break;

}

return 0;

}

其語義是:計算表達式的值。 并逐個與其后的常量表達式值相比較,當表達式的值與某個常量表 達式的值相等時, 即執(zhí)行其后的語句,然后不再進行判斷,繼續(xù)執(zhí)行后面所有case后的語句。如 表達式的值與所有case后的常量表達式均不相同時,則執(zhí)行default后的語句。

1、switch語句的表達式類型

1)可以放一個整型的變量 int num = 10;switch (num)

2)可以放一個整形常量? switch (10)

3)可以放一個返回值是整型的表達式 ? switch (5+5),num = 5+5

4)還可以放可以轉換為int類型的表達式 switch ('a'+'a')

----------case語句的穿透問題

case語句執(zhí)行的過程中,一旦進入某個分支后就會一直執(zhí)行到switch結束。

為了避免上述情況,C語言還提供了一種break語句,專用于跳出switch語句.

---------if分支和switch分支轉換

if語句不一定能轉換成switch語句,switch語句一定能轉換成if語句

if(表達式)-------case 常量表達式

---------if分支和switch分支的選擇

1)分支比較多且無法窮盡或進行大量列舉 時最好用if

2)如果分支數(shù)量不是很多,但是使用if代碼代碼量比較大的時候,可以選用switch

if ? ? 可以理解為 ? 判斷語句 ? 判斷性為主

switch? ? ? ? ? ? 選擇語句 ? 選擇性為主

---------switch分支值得注意的地方

表達式的類型(case語句后的值)必須是整型或可以轉變?yōu)檎偷闹?(byte、short、char和int類型)。

整形變量? ? 整形常量 ? 返回值是整形的表達式 ? 可以裝換為int類型的表達式

2) 功能代碼部分可以寫任意多句。

3) case語句可以有任意多句,可以不用加括號“{}”

4) break關鍵字的意思是中斷,指結束switch語句,break語句為可選。

-----------case值得注意的地方

0) case語句格式: case? 常量表達式: (空格和冒號不能省)

1) case的值1、值2...值n只能為常數(shù)或常量,不能為變量。

2) 如果放表達式,那么只可以是常量表達式 case 5+5:

3) default語句的位置可以任意放 功能類似于if語句中的else。但是寫在最上面會重新一次往下執(zhí)行4) case的穿透問題,同樣適用于 default

5) 如果default語句放到 switch語句的最后,可以不加break

如果不是放到最后,是必須加上break的

6) case的值必須是整數(shù),不能為浮點數(shù)。

7) case 語句之后,默認的第一句話不能定義定義變量

如果第一句話非要定義,應該加上大括號

----------------scanf函數(shù)(阻塞式函數(shù))----------------

如果使用這個函數(shù),要包含一個頭文件 stdio.h

阻塞式的函數(shù):函數(shù)執(zhí)行后,會等待用戶的輸入,如果用戶不輸入任何內(nèi)容,它會一直等待

scanf函數(shù)的作用:

從鍵盤接收用戶輸入的內(nèi)容,保存到指定的變量中

scanf函數(shù)的格式:

scanf("格式控制符",輸入項的地址列表);

scanf注意

1。當有多個 輸入項時,各個地址名之間以逗號“,”分隔。輸入格式和變量類型要保持一致。

2.scanf函數(shù)當遇到回車的時候,會結束執(zhí)行

3、接收單個變量值的時候,在輸入值之前,如果我們輸入了空格 回車 tab,都會被忽略

%d%d,要求我們在鍵盤上輸入的時候,輸入兩個整數(shù),并且以空格或者回車隔開

4,輸入完第一個數(shù)以后,如果中間添加了回車 空格 tab 都會被忽略

5? ? ? %*d按指定格式讀入數(shù)據(jù)但不賦予相應的變量,作用是跳過相應的讀入數(shù)據(jù)

%*d過一個整數(shù)

6? 此處不允許寫%m.nf,但是%mf是可以

7? 要求輸入分數(shù) 確輸入了字符 運行結果 0.00000

scanf運行的原理

1)當用戶輸入內(nèi)容后,用戶輸入的內(nèi)容會被存放到scanf的輸入緩沖區(qū)中 然后,

scanf函數(shù)會根據(jù)格式控制的字符的要求,從輸入緩沖區(qū)依次取它想要的內(nèi)容

如果 從緩沖區(qū)中取得內(nèi)容和和我們的格式要求一致,則把值存放到變量中

如果格式不一致,則不修改變量的值

2)如果scanf緩沖區(qū)中還有內(nèi)容,則scanf不會提示我們再次輸入1、scanf的運行原理

總結

以上是生活随笔為你收集整理的c语言switch scanf语句,C语言中scanf函数与switch语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。