1樓:匿名使用者
‘a'是字元常量
“a" == char[2] =
int a=1;
switch (a)
其中最後一個break;( case else:下面那個)可以不加如果把break全去掉,就會輸出a is onea is twoa is more than two
因為程式會從 case (相應的值): 處開始執行,一直到switch結束,加break防止它執行到下一個case內
2樓:魚蛋
#include
int main()
case 2:
case 3:
case 4:
default:} }
switch是按照順序從上往下執行的語句:先是你給a付一個值:
如果你輸入1,程式會從case1開始配對,如果a是1,則執行case1裡面的命令,順序執行下來,輸出‘你輸入的是1!’,然後遇到break把switch語句終止,該程式結束;
如果你輸入2,程式會從case1開始配對,如果a是1,則執行case1裡面的命令,順序執行下來,但是a等於2,所以不執行case 1:就不看case 1:裡面的內容了,然後去配對case 2:
發現a=2,輸出‘你輸入的是2!’,然後遇到break把switch語句終止,該程式結束;
如果你輸入3,程式會從case1開始配對,如果a是1,則執行case1裡面的命令,順序執行下來,
但是a等於3,所以不執行case 1,就不看case 1裡面的內容了,然後去配對case 2:a也不等於2所以不執行case 2,就不看case 2裡面的內容了,然後遇到case3,因為a=3,所以輸出‘你輸入的是3!’,但是沒有break,語句,所以順序執行下來,不管a會不會等於4,都將執行‘你輸入的是4!
’,還將執行‘你輸入的是不是1-4!!',因為沒有break語句去終止該指令
以此類推,如果輸入4,將輸出‘你輸入的是4!’‘你輸入的是不是1-4!!’,兩條語句,
如果你輸入的是1-4的以為的數值,那將輸出‘你輸入的是不是1-4!!’,這也就是default的用法了。
懂了嗎?
c語言 switch的用法
3樓:四舍**入
switch用在程式設計中,如c語言中它經常跟case一起使用,是一個判斷選擇**。其功能就是控制業務流程流轉的。
c語言程式語句switch語句的語法如下(switch,case和default是關鍵字):
switch ( controllingexpression )
4樓:彼岸花
c語言程式語句switch:
switch用在程式設計中,如c語言中它經常跟case一起使用,是一個判斷選擇**。其功能就是控制業務流程流轉的。
switch語句的語法如下(switch,case和default是關鍵字):
switch ( controllingexpression )
遵守switch語句規則
switch語句非常有用,但在使用時必須謹慎。所寫的任何switch語句都必須遵循以下規則:
只能針對基本資料型別使用switch,這些型別包括int、char等。對於其他型別,則必須使用if語句。
case標籤必須是常量表示式(constantexpression),如42或者"42"。如果需要在執行時計算case標籤的值,必須使用if語句。
case標籤必須是惟一性的表示式;也就是說,不允許兩個case具有相同的值。
c語言switch應用例子:
例一:#include
int main()
}例二:
#include
int main()
}例三:
輸入年月日,判斷這一天是這一年的第幾天。
#include
int main()
printf("%4d年%2d月%2d日是這一年的第%d天。\n",year,month,date,days);}
5樓:金剛2q疕k缹
凡是使用過的人都會有同樣的感覺——c語言的使用靈活這個特點既是優點又是缺點, 因為對精通c語言的使用者來講, 靈活就意味著程式設計可以無拘無束, 甚至隨心所欲; 但對初學者或者是尚未摸著規律的使用者來說, 有時候就會覺得c程式設計有點象霧裡看花, 摸不著頭腦。 因為靈活就意味著沒有一個標準。 而實際上,c 語言和其它計算機語言一樣, 只要你真正掌握了該語言的每一個語句的特點, 理解、 運用就不難掌握了。
下面就c語言中switch 語句的使用特點談談自己的體會。 ---- switch 語句的格式如下: switch( 表示式) ---- 從表面上看來,switch 語句與pascal 語言中的case 語句以及foxbase 中的do case 語句非常類似, 只是關鍵字有所不同:
一個是switch; 而另一個是case 或do case。 但如果仔細閱讀過教材或有關參考書的話, 就絕不會有此想法。 從語句的功能上來看,pascal 和case 語句或foxbase 的do case 語句中的常量表示式是用來與case 後面的表示式比較以確定執行哪一個語句, 一旦執行了某一語句, 則會自動地結束這一case 後的語句; 而c 的switch 語句則不然。
首先,switch 語句中的常量表示式只是起到一個入口作用, 一旦執行了相應的語句後, 只要沒有強迫中斷語句(break),它就會一直按順序繼續執行下去, 也就是會執行其它case 後面的語句, 直到遇到“}” 符號才停止。 乍看覺得有點不可事議, 但若仔細回味且切身程式設計體會, 那麼就會感司到c的switch 語句的獨到之處。 接下來就幾個具體例子來剖析:
switch 語句的特點以及區別於其它語言中的相應語句的妙處。 ---- 第一個例子: 根據輸入的百分制成績, 然後給出‘a’ ~‘e’ 相應的等級符(90-100 為‘a’、80-89 為‘b’、70-79 為‘b’、60-69 為‘c’、0-59 為‘e’)。
主要的處理程式段如下:(temp、score、grade 皆為整型變數) temp=score/10; switch(temp) printf(“the grade is %c”,grade); ---- 仔細閱讀這段程式( 根據c語言的特點),就會發現有很多錯誤。 首先, 對100 分和低於50 分的情況沒有考慮; 其次,c 語言的switch 特點是順序執行, 那麼這段程式不輸入的分數如何, 最後的輸出都將是‘e’。
因此, 修改這段程式, 可以得到一個正確答案是: temp=score/10; switch(temp) printf(“the grade is %c,grade”); ---- 但這麼一個結果還不算是一個好的c程式, 因為它只是能得到正確的解, 沒有真正用到c的特點。 如果將c的特點運用到這段程式中, 則程式將優化成如下:
grade=‘a’; temp=score/10; switch(temp) printf(“the grade is %c,grade”); ---- 從這段程式中, 我們可以體會到前面所說的該語句的特點。 ---- 第二個例子: 運輸公司對使用者計算運費。
距離(s) 越遠, 每公里運費越低。 具體標準如下: s < 250 (km) 沒有折扣 250 < =s < 500 (km) 2% 折扣 500 < =s < 1000 (km) 5% 折扣 1000 < =s < 2000(km) 8% 折扣 2000 < =s < 3000(km) 10% 折扣 3000 < =s (km) 15% 折扣 ---- 設每公里每噸貨物的基本運費為p, 貨物重為w, 距離為s, 折扣為d, 則總運費計算公式為:
---- f=p*w*s*(1-d) ---- 分析此問題, 折扣的變化是有規律的: 折扣的“ 變化點” 都是250 的倍數(250,500,1000,2000,3000)。利用這一特點, 可以再設一變數c, 它代表250 的倍數。
當c<1 時, 無折扣;1<=c<2 時, 折扣為d=2%;2<=c<4 時,d=5%;4<=c<8 時,d=8%;8<=c<12 時,d=10%; c>=12 時,d=15%。 所以可以有如下沒有錯誤的程式段>=3000)c=12 else c=s/250 switch(c) f=p*w*s*(1-d/100.
0); printf(“freight%15.f”,f); ---- 如同前一個題目, 這個程式段也完全可以利用switch 特點, 改進優化得到如下程式段>=3000)c=12 else c=s/250 switch(c) f=p*w*s*(1-d/100.
0); printf(“freight%15.4f”,f); ---- 從上面兩個例子分析, 使我們可以比較清楚地看見c語言中switch 語句與其它語言中相應語句的區別。 儘管在學習和教計算機語言的過程中, 我們始終認為語言是相通的, 這樣便於學習一門新的語言。
但是真正要把某一門計算機語言學好, 非得掌握它的特點。 ---- 這裡僅僅是自己在程式設計實踐過程中的一點體會, 有錯誤的地方懇請批評指正。 希望對你有幫助!
6樓:匿名使用者
特意找課本看了一下:
switch(表示式)
其語義是:計算表示式的值。 並逐個與其後的常量表示式值相比較,當表示式的值與某個常量表示式的值相等時, 即執行其後的語句,然後不再進行判斷,繼續執行後面所有case後的語句。
如表示式的值與所有case後的常量表示式均不相同時,則執行default後的語句。
在switch語句中,“case 常量表示式”只相當於一個語句標號, 表示式的值和某標號相等則轉向該標號執行,但不能在執行完該標號的語句後自動跳出整個switch 語句,所以出現了繼續執行所有後面case語句的情況。 這是與前面介紹的if語句完全不同的,應特別注意。為了避免上述情況, c語言還提供了一種break語句,專用於跳出switch語句,break 語句只有關鍵字break,沒有引數。
在後面還將詳細介紹。修改例題的程式,在每一case語句之後增加break 語句, 使每一次執行之後均可跳出switch語句,從而避免輸出不應有的結果。
c語言中的字元型的運算,在C語言中,要求運算數必須是整型或字元型的運算子是()。
include include include using namespace std void k add string a,string b,int k 將長的字串放在前面 if a.size b.size string temp a a b b temp 對源字串進行翻轉 reverse a....
為什麼在c語言中,字元型不能用scanf輸入,而是用getc
樓主你好,關於你問的這個問題在我初學c語言的時候也遇到過,不僅是乙個人遇到,這是很多初學者都會遇到的問題 當然,我不是說樓主大哥你是初學者 呵呵 這個問題曾經麻痺了很多人,開始我也是不知道是什麼原因,直到一次偶然的機會我才知道問題的所在 出錯原因如下 當你輸入資料後 回車,資料才被函式 scanf ...
c語言中字元1是什麼意思, C語言中字元 1 是什麼意思?
珈藍惜夢 1 為轉義字元,代表的意思是 標題開始 在c語言中,所有的ascii碼都可以用 加數字 一般是8進位制數字 來表示。而c中定義了一些字母前加 來表示常見的那些不能顯示的ascii字元,如 0,t,n等,就稱為轉義字元,因為後面的字元,都不是它本來的ascii字元意思了。轉義字元是很多程式語...