當前位置:編程學習大全網 - 編程語言 - Java中的switch語句怎麽使用

Java中的switch語句怎麽使用

switch 語句的格式:

 

switch ( 整型或字符型變量 )

{

 case 變量可能值1 :

  分支壹;

 break;

case 變量可能值2 :

  分支二;

 break;

case 變量可能值3 :

  分支三;

 break;

...

default :

最後分支;

 

在 switch 的語法裏,我們要學到4個關鍵字:switch、case 、break、default。

 

在 switch ( 變量 ) 這壹行裏,變量只能是整型或字符型。程序先讀出這個變量的值,然後在各個"case"裏查找哪個值和這個變量相等,如果相等,就算條件成立,程序執行相應的分支,直到碰上break或者switch語句結束。

 

 

了解壹下switch,case,break,default的意思,對理解前面的壹切也會有幫助,它們分別是:開關,情況,中斷,默認(值)。那麽用壹句話套起來的說法就是:根據開關值的不同,執行不同的情況,直到遇上中斷;如果所有的情況都不符合開關值,那麽就執行默認的分支。

 

最後說壹下關於switch中非常重要的幾個註意點。

 

第壹、switch ( 整型或字符型變量 ) 中,變量的類型如文中所標,只能是整型和字符類型。它們包含 int,char。當然無符類型或不同的長度整型(unsigned int,short,unsigned char)等都可以。另外,枚舉類型(enum)內部也是由整型或字符類型實現。所以也可以。實型(浮點型)數就不行,如:

float a = 0.123;

switch(a) //錯誤!a不是整型或字符類型變量。

{

....

}

 

第二、case 之後可以是直接的常量數值,如例中的1、2、3、4,也可以是壹個使用常量計算式,如2+2等,但不能是變量或帶有變量的表達式,如 a * 2等。當然也不能是實型數,如4.1,或2.0 / 2 等。

switch(formWay)

{

case 2-1 : //正確

...

case a-2 : //錯誤

...

case 2.0 : //錯誤

...

}

另外,在case 與常量值之後,需要壹個冒號,請註意不要疏忽。

 

第三、break 的作用。

break 使得程序在執行完選中的分支後,可以跳出整個switch語句(即跳到switch接的壹對{}之後),完成switch。如果沒有這個break,程序將在繼續前進到下壹分支,直到遇到後面的break或者switch完成。

比如,假設現在程序進入case 1: 中的分支,但case 1 的分支這回沒有加break:

 

case 1 :

System.out.println("您是通過搜索引擎來到本網站的。");

case 2 :

System.out.println("您是通過朋友介紹來到本網站的。");

 

那麽,程序在輸出 "您是通過搜索引擎來到本網站的。" 之後,會繼續輸出case 2中的 "您是通過朋友介紹來到本網站的。" 。

請大家將前面實例中的代碼片段改為如下(紅色部分,即將所有的break都通過加//使之無效。):

...

case 1 :

System.out.println("您是通過搜索引擎來到本網站的。" );

//break;

case 2 :

System.out.println("您是通過朋友介紹來到本網站的。");

//break;

case 3 :

System.out.println("您是通過報刊雜誌來到本網站的。");

//break;

case 4 :

System.out.println("您是通過其它方法來到本網站的。");

//break;

default :

System.out.println("錯誤的選擇!請輸入1~4的數字做出選擇。");

...

 

運行後,結果會是如何?請大家動手試試,然後在作業中回答我。

 

第四、default是可選中,前面我們已經說過它的用處,及如果沒有default,程序在找不到匹配的case分支後,將在switch語句範圍內不做什麽事,直接完成switch。大家也可以在實例中將default的代碼註釋掉,然後試運行,並且在選擇時輸入5。

...

//default :

//cout << "錯誤的選擇!請輸入1~4的數字做出選擇。" << endl;

...

 

第五、必要時,可在各個case中使用{}來明確產生獨立的復合語句。

前面我們在講if...語句和其它流程控制語句時,都使用{}來產生復合語句:

if (條件)

{

分支壹;

}

除非在分支中的語句正好只有壹句,這裏可以不需要花括號{}。但在switch的各個case語句裏,我們在語法格式上就沒有標出要使用{},請看:

switch ( 整型或字符型變量 )

{

 case 變量可能值1 :

  分支壹;

 break;

case 變量可能值2 :

....

}

 

壹般教科書上只是說 case 分支可以不使用{},但這裏我想提醒大家,並不是任何情況下case分支都可以不加{},比如妳想在某個case裏定義壹個變量:

switch (formWay)

{

case 1 :

int a=2; //錯誤。由於case不明確的範圍,編譯器無法在此處定義壹個變量。

...

case 2 :

...

}

 

在這種情況下,加上{}可以解決問題。

switch (formWay)

{

case 1 :

 { 

int a=2; //正確,變量a被明確限定在當前{}範圍內。

...

 } 

case 2 :

...

}

  • 上一篇:VB6.0與VB.NET有什麽區別?
  • 下一篇:數控屬於什麽類型的專業
  • copyright 2024編程學習大全網