搜尋
首頁Javajava教程java 學習筆記(入門篇)_多選擇結構switch語句

多選擇結構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
Java仍然是基於新功能的好語言嗎?Java仍然是基於新功能的好語言嗎?May 12, 2025 am 12:12 AM

Javaremainsagoodlanguageduetoitscontinuousevolutionandrobustecosystem.1)Lambdaexpressionsenhancecodereadabilityandenablefunctionalprogramming.2)Streamsallowforefficientdataprocessing,particularlywithlargedatasets.3)ThemodularsystemintroducedinJava9im

是什麼使Java很棒?關鍵特徵和好處是什麼使Java很棒?關鍵特徵和好處May 12, 2025 am 12:11 AM

Javaisgreatduetoitsplatformindependence,robustOOPsupport,extensivelibraries,andstrongcommunity.1)PlatformindependenceviaJVMallowscodetorunonvariousplatforms.2)OOPfeatureslikeencapsulation,inheritance,andpolymorphismenablemodularandscalablecode.3)Rich

前5個Java功能:示例和解釋前5個Java功能:示例和解釋May 12, 2025 am 12:09 AM

Java的五大特色是多態性、Lambda表達式、StreamsAPI、泛型和異常處理。 1.多態性讓不同類的對象可以作為共同基類的對象使用。 2.Lambda表達式使代碼更簡潔,特別適合處理集合和流。 3.StreamsAPI高效處理大數據集,支持聲明式操作。 4.泛型提供類型安全和重用性,編譯時捕獲類型錯誤。 5.異常處理幫助優雅處理錯誤,編寫可靠軟件。

Java的最高功能如何影響性能和可伸縮性?Java的最高功能如何影響性能和可伸縮性?May 12, 2025 am 12:08 AM

java'stopfeatureSnificallyenhanceItsperformanCandScalability.1)對象 - 方向clincipleslike-polymormormormormormormormormormormormorableableflexibleandscalablecode.2)garbageCollectionAutectionAutoctionAutoctionAutoctionAutoctionAutoctionAutoMenateMememorymanateMmanateMmanateMmanagementButCancausElatemention.3)

JVM內部:深入Java虛擬機JVM內部:深入Java虛擬機May 12, 2025 am 12:07 AM

JVM的核心組件包括ClassLoader、RuntimeDataArea和ExecutionEngine。 1)ClassLoader負責加載、鏈接和初始化類和接口。 2)RuntimeDataArea包含MethodArea、Heap、Stack、PCRegister和NativeMethodStacks。 3)ExecutionEngine由Interpreter、JITCompiler和GarbageCollector組成,負責bytecode的執行和優化。

什麼是使Java安全安全的功能?什麼是使Java安全安全的功能?May 11, 2025 am 12:07 AM

Java'ssafetyandsecurityarebolsteredby:1)strongtyping,whichpreventstype-relatederrors;2)automaticmemorymanagementviagarbagecollection,reducingmemory-relatedvulnerabilities;3)sandboxing,isolatingcodefromthesystem;and4)robustexceptionhandling,ensuringgr

必不可少的Java功能:增強您的編碼技巧必不可少的Java功能:增強您的編碼技巧May 11, 2025 am 12:07 AM

Javaoffersseveralkeyfeaturesthatenhancecodingskills:1)對象 - 方向 - 方向上的allowslowsmodelowsmodelingreal-worldentities

JVM最完整的指南JVM最完整的指南May 11, 2025 am 12:06 AM

thejvmisacrucialcomponentthatrunsjavacodebytranslatingitolachine特定結構,影響性能,安全性和便攜性。 1)theclassloaderloader,links andinitializesClasses.2)theexecutionEngineExecutionEngineExecutionEngineExecuteNexeCuteByteCuteByteCuteByTecuteByteCuteByteCuteBytecuteBytecuteByteCoDeinintolachineinstructionsions.3)Memo.3)Memo

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境