1樓:匿名使用者
你說的開關語句,應該是一種分支語句
格式如下:
switch( 條件 )
2樓:匿名使用者
switch()
c語言開關語句是什麼?
3樓:胡說八道小鬼
break在for迴圈來實現開關語句、while迴圈等迴圈流程控制中起的作用是停止執行break後面的語句,跳出本次迴圈,並跳出該迴圈控制體。
c語言雖然沒有限制 if else 能夠處理的分支數量,但當分支過多時,用 if else 處理會不太方便,而且容易出現 if else 配對出錯的情況。例如,輸入一個整數,輸出該整數對應的星期幾的英文表示:
執行結果:
input integer number:3
wednesday
c語言還提供了另外一種多分支選擇的語句——switch 語句,它的基本語法格式如下:
switch(表示式)
它的執行過程是:首先計算「表示式」的值,然後從第一個 case 開始,與「常量表示式x」進行比較,如果與當前常量表示式的值不相等,那麼就不執行冒號後邊的語句 x,一旦發現和某個常量表示式的值相等了,那麼它會執行之後所有的語句,如果直到最後一個「常量表示式 n」都沒有找到相等的值,那麼就執行 default 後的「語句 n+1」。
需要注意的是,當找到一個相等的 case 分支後,會執行該分支以及之後所有分支的語句。例如:
執行結果:
input integer number:4
thursday
friday
saturday
sunday
error
輸入4,發現和第四個分支匹配,於是就執行第四個分支以及後面的所有分支。這顯然不是我們想要的結果,我們希望只執行第四個分支,跳過後面的所有分支。
為了避免這種情況,c語言還提供了一個關鍵字 break,專門用於跳出switch語句。
switch 的分支語句一共有 n+1 種,而我們通常希望的都是選擇其中的一個分支來執行,執行完後就結束整個 switch 語句,而繼續執行 switch後面的語句,此時就可以通過在每個分支後加上 break 語句來實現了。如下:
switch (表示式)
加了這個 break 語句後,一旦「常量表示式 x」與「表示式」的值相等了,那麼就執行「語句 x」,執行完畢後,由於有了 break 則直接跳出 switch 語句,繼續執行 switch 語句後面的程式了,這樣就可以避免執行不必要的語句。
使用switch語句修改上面的**:
執行結果:
input integer number:4
thursday
值得一提的是,由於default是最後一個分支,匹配後不會再執行其他分支,所以也可以不用break;語句。
switch開關語句是指什麼 c語言
4樓:匿名使用者
就是根據一個表示式的取值,來執行不同的語句,就像一堆開關,可以控制電流往哪個方向流動一樣
switch(a)
5樓:傻癲丶
該語句也是多分支選擇語句,到底執行哪一塊,取決於開關設定,也就是表示式的值與常量表示式相匹配的那一路,它不同if…else語句,它的所有分支都是並列的,程式執行時,由第一分支開始查詢,如果相匹配,執行其後的塊,接著執行第2分支,第3分支……的塊,直到遇到break語句;如果不匹配,查詢下一個分支是否匹配。這個語句在應用時要特別注意開關條件的合理設定以及break語句的合理應用。
「?」語句 問號語句也是分支的一種,格式類似(a
6樓:匿名使用者
可能之一 吧,分支 之一,滿足哪一個條件就選擇哪一個語句。
switch(表示式)
7樓:房靈韻闢純
switch(表達
式)就是switch裡面的表示式等於什麼值,等於常量表示式1就執行語句1,等於常量表示式2就執行語句2,類推。最後執行
default:就是語句n+1,然後結束。注意,沒有break的結果不一樣。沒有break的話還要執行下一語句,如【
case
常量表示式1:
語句1;】
沒有break,就
執行了語句1,然後case
常量表示式2:語句2.後面的類似。
c語言 關於switch開關語句
8樓:豬頭或火寶寶
樓主要問什麼問題啊!!!!
程式沒有錯誤啊:
可能是樓主都輸出的結果懷疑吧!!
比如:我輸入:abcedf
輸出:v0=8,v1=2,v2=7
v1=2就不要解釋了,但v0=8,因為執行完case 後沒有breakl;因此還要要執行default:v0+=1;v2+=1;當讀完字元f時,此時v0=7,v2=6,但由於你按的是回車鍵,此鍵就存在快取中了,
do{}while;迴圈是先執行再判斷,還的判斷依次最後回車鍵,所以v0,v2又都加了1
#include
main()
}} while(c!='\n');
9樓:匿名使用者
main()
} while(c!=′\n′);
10樓:匿名使用者
一直輸入知道回車鍵
v1=輸入的字元中a e i o u (包括大寫)的個數v0 等於總共出入字元個數+1 v2等於總輸入個數case ′a′:case′a′:
case′e′:case′e′:
case′i′:case′i′:
case′o′:case′o′:
case′u′:case′u′:v1+=1;
default:v0+=1;v2+=1;
這邊都沒有 break所以只要輸入等於這些字元v1就自加1 並且還會執行default中的語句
11樓:超大個蘿唄
語句v0+=1,是default條件中的...v2+=1是switch語句之外的,因為所有的case後面都沒有break,所以該switch語句每次都要把default走一遍,因此每迴圈一次v0和v2都自加一次...而開始的時候v0=1,v2=0,所以最後輸出的時候v0比v2大一
只有當輸入的字母是a,a,e,e,i,i,o,o,u,u中的一個的時候v1才自加一次,當輸入回車時程式結束...迴圈用的語句是do...while...
所以v1等於輸入的字串中含有a,a,e,e,i,i,o,o,u,u其中之一的個數加1,v2等於輸入的字串的個數加1,v0等於v2加2。
C語言for迴圈,c語言中for語句是怎麼用的
為什麼?我想為你為什麼不知道原因,這是很簡單的邏輯推算題,一看就知道你的呼叫的函式返回值就是你的輸入值,我猜你是想要的結果是1,1 2,1 2 3,1 2 3 4,1 2 3 4 5是吧?呼叫函式的形參只是在你用的時候形成,當呼叫完畢就會釋放,j的運算結果不會保留在記憶體當中,因此你想要那種結果的話...
C語言中headnode是什麼,C語言中,頭指標head,和headnext分別是什麼
應該是個變數名,直譯過來是頭指標,一般用在連結串列裡 c語言。如圖。星號 跟在node後面和在head前面有什麼區別?這兩種寫法效果是一樣的,沒有區別 如同 定義一個指標變數,可以寫 int p int p int p 沒區別 都是代表結構體指標 c語言中,頭指標head,和head next分別是...
C語言賦值語句是否正確的判斷,C語言中賦值語句的語法是怎樣的
c是錯誤的a t 5等價於t t 5類似的還有 b k i j 加上括號就好看了k i j 也就是將i 跟j比較的布林值賦值 相等則真 1,不等則假 0 給k c a b c 1等價於a b c 1 不能給b c這樣的表示式賦值 因為b c得到的是一個常量 所以不正確 a t t 5 b 先執行i和...