首頁  >  文章  >  Java  >  java 學習筆記(入門篇)_多選擇結構switch語句

java 學習筆記(入門篇)_多選擇結構switch語句

黄舟
黄舟原創
2016-12-19 14:03:031818瀏覽

多選擇結構switch語句
在java中為多路分支選擇流程專門提供了switch語句,switch語句根據一個表達式的值,選擇運行多個操作中的一個。他的語法形式如下: 

witch(表达式){ 
case 表达式常量1:语句1; 
break; 
case 表达式常量2:语句2; 
break; 
...... 
case 表达式常量n:语句n; 
break; 
[default:语句n+1;] 
}

其中,一個case表達式常數成為標號,代表一個case分支的入口。 switch語句在運行時首先計算switch圓括號中“表達式”的值,這個值必須是整型或字符型的,同時後面各個case表達式常量的值的類型應與switch圓括號中“表達式”的值類型一致。一個case語句代表一個制定操作,然後轉向結構出口。 default子句是可選的,當表達式的值與case表達式常數的值都不符時,就執行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中的"您是透過朋友介紹來到本網站的。" 。
 
第四、default是可選中,前面我們已經說過它的用處,及如果沒有default,程式在找不到匹配的case分支後,將在switch語句範圍內不做什麼事,直接完成switch。大家也可以在實例中將default的程式碼註解掉,然後試運行,並且在選擇時輸入自訂的。
 
第五、必要時,可在各個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 : 
... 
}

最後看一下範例程式:

public class TestSwitch //基于字符型 
{ 
public static void main(String[] args) 
{ 
//声明变量score,并为其赋值为'C' 
char score = 'C'; 
//执行swicth分支语句 
switch (score) 
{ 
case 'A': 
System.out.println("优秀."); 
break; 
case 'B': 
System.out.println("良好."); 
break; 
case 'C': 
System.out.println("中"); 
break; 
case 'D': 
System.out.println("及格"); 
break; 
case 'F': 
System.out.println("不及格"); 
break; 
default: 
System.out.println("成绩输入错误"); 
} 
} 
}

 以上就是java 學習筆記(入門篇)_多選擇結構switch語句的內容,更多相關內容請關注PHP中文網(www.php.cn)! 


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn