switch 語句的格式:
switch ( 整型或字符型變量 )
{
}
在 switch 的語法里,我們要學(xué)到4個(gè)關(guān)鍵字:switch、case、break、default。
在 switch ( 變量) 這一行里,變量只能是整型或字符型。程序先讀出這個(gè)變量的值,然后在各個(gè)"case"里查找哪個(gè)值和這個(gè)變量相等,如果相等,就算條件成立,程序執(zhí)行相應(yīng)的分支,直到碰上break或者switch語句結(jié)束。
了解一下switch,case,break,default的意思,對(duì)理解前面的一切也會(huì)有幫助,它們分別是:開關(guān),情況,中斷,默認(rèn)(值)。那么用一句話套起來的說法就是:根據(jù)開關(guān)值的不同,執(zhí)行不同的情況,直到遇上中斷;如果所有的情況都不符合開關(guān)值,那么就執(zhí)行默認(rèn)的分支。
最后說一下關(guān)于switch中非常重要的幾個(gè)注意點(diǎn)。
第一、switch ( 整型或字符型變量) 中,變量的類型如文中所標(biāo),只能是整型和字符類型。它們包含 int,char。當(dāng)然無符類型或不同的長度整型(unsignedint,short,unsignedchar)等都可以。另外,枚舉類型(enum)內(nèi)部也是由整型或字符類型實(shí)現(xiàn)。所以也可以。實(shí)型(浮點(diǎn)型)數(shù)就不行,如:
float a = 0.123;
switch(a)//錯(cuò)誤!a不是整型或字符類型變量。
{
}
第二、case 之后可以是直接的常量數(shù)值,如例中的1、2、3、4,也可以是一個(gè)使用常量計(jì)算式,如2+2等,但不能是變量或帶有變量的表達(dá)式,如a * 2等。當(dāng)然也不能是實(shí)型數(shù),如4.1,或2.0 / 2 等。
switch(formWay)
{
}
另外,在case 與常量值之后,需要一個(gè)冒號(hào),請(qǐng)注意不要疏忽。
第三、break 的作用。
break使得程序在執(zhí)行完選中的分支后,可以跳出整個(gè)switch語句(即跳到switch接的一對(duì){}之后),完成switch。如果沒有這個(gè)break,程序?qū)⒃诶^續(xù)前進(jìn)到下一分支,直到遇到后面的break或者switch完成。
比如,假設(shè)現(xiàn)在程序進(jìn)入case 1: 中的分支,但case1 的分支這回沒有加break:
case 1 :
case 2 :
那么,程序在輸出 "您是通過搜索引擎來到本網(wǎng)站的。" 之后,會(huì)繼續(xù)輸出case2中的 "您是通過朋友介紹來到本網(wǎng)站的。" 。
請(qǐng)大家將前面實(shí)例中的代碼片段改為如下(紅色部分,即將所有的break都通過加//使之無效。):
case 1 :
運(yùn)行后,結(jié)果會(huì)是如何?請(qǐng)大家動(dòng)手試試,然后在作業(yè)中回答我。
第四、default是可選中,前面我們已經(jīng)說過它的用處,及如果沒有default,程序在找不到匹配的case分支后,將在switch語句范圍內(nèi)不做什么事,直接完成switch。大家也可以在實(shí)例中將default的代碼注釋掉,然后試運(yùn)行,并且在選擇時(shí)輸入5。
...
//default :
...
第五、必要時(shí),可在各個(gè)case中使用{}來明確產(chǎn)生獨(dú)立的復(fù)合語句。
前面我們?cè)谥vif...語句和其它流程控制語句時(shí),都使用{}來產(chǎn)生復(fù)合語句:
if (條件)
{
}
除非在分支中的語句正好只有一句,這里可以不需要花括號(hào){}。但在switch的各個(gè)case語句里,我們?cè)谡Z法格式上就沒有標(biāo)出要使用{},請(qǐng)看:
switch ( 整型或字符型變量 )
{
}
一般教科書上只是說 case分支可以不使用{},但這里我想提醒大家,并不是任何情況下case分支都可以不加{},比如你想在某個(gè)case里定義一個(gè)變量:
switch (formWay)
{
}
在這種情況下,加上{}可以解決問題。
switch (formWay)
{
?。?/p>
}
聯(lián)系客服