最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 學(xué)習(xí)筆記(入門篇)_多選擇結(jié)構(gòu)switch語(yǔ)句

 更新時(shí)間:2013年01月03日 10:23:31   作者:  
在java中為多路分支選擇流程專門提供了switch語(yǔ)句,switch語(yǔ)句根據(jù)一個(gè)表達(dá)式的值,選擇運(yùn)行多個(gè)操作中的一個(gè),感興趣的朋友可以了解下
多選擇結(jié)構(gòu)switch語(yǔ)句
在java中為多路分支選擇流程專門提供了switch語(yǔ)句,switch語(yǔ)句根據(jù)一個(gè)表達(dá)式的值,選擇運(yùn)行多個(gè)操作中的一個(gè)。他的語(yǔ)法形式如下:
復(fù)制代碼 代碼如下:

switch(表達(dá)式){
case 表達(dá)式常量1:語(yǔ)句1;
break;
case 表達(dá)式常量2:語(yǔ)句2;
break;
......
case 表達(dá)式常量n:語(yǔ)句n;
break;
[default:語(yǔ)句n+1;]
}

其中,一個(gè)case表達(dá)式常量成為標(biāo)號(hào),代表一個(gè)case分支的入口。switch語(yǔ)句在運(yùn)行時(shí)首先計(jì)算switch圓括號(hào)中“表達(dá)式”的值,這個(gè)值必須是整型或字符型的,同時(shí)后面各個(gè)case表達(dá)式常量的值的類型應(yīng)與switch圓括號(hào)中“表達(dá)式”的值類型一致。一個(gè)case語(yǔ)句代表一個(gè)制定操作,然后轉(zhuǎn)向結(jié)構(gòu)出口。default子句是可選的,當(dāng)表達(dá)式的值與case表達(dá)式常量的值都不匹配時(shí),就運(yùn)行default子句,轉(zhuǎn)向結(jié)構(gòu)出口。
最后說(shuō)一下關(guān)于switch中非常重要的幾個(gè)注意點(diǎn)。
 
第一、switch ( 整型或字符型變量 ) 中,變量的類型如文中所標(biāo),只能是整型和字符類型。它們包含 int,char。當(dāng)然無(wú)符類型或不同的長(zhǎng)度整型(unsigned int,short,unsigned char)等都可以。另外,枚舉類型(enum)內(nèi)部也是由整型或字符類型實(shí)現(xiàn)。所以也可以。實(shí)型(浮點(diǎn)型)數(shù)就不行,如:
復(fù)制代碼 代碼如下:

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 等。
復(fù)制代碼 代碼如下:

switch(formWay)
{
case 2-1 : //正確
...
case a-2 : //錯(cuò)誤
...
case 2.0 : //錯(cuò)誤
...
}

另外,在case 與常量值之后,需要一個(gè)冒號(hào),請(qǐng)注意不要疏忽。
 
第三、break 的作用。break 使得程序在執(zhí)行完選中的分支后,可以跳出整個(gè)switch語(yǔ)句(即跳到switch接的一對(duì){}之后),完成switch。如果沒有這個(gè)break,程序?qū)⒃诶^續(xù)前進(jìn)到下一分支,直到遇到后面的break或者switch完成。
比如,假設(shè)現(xiàn)在程序進(jìn)入case 1: 中的分支,但case 1 的分支這回沒有加break:
 
復(fù)制代碼 代碼如下:

case 1 :
System.out.println("您是通過(guò)搜索引擎來(lái)到本網(wǎng)站的。");
case 2 :
System.out.println("您是通過(guò)朋友介紹來(lái)到本網(wǎng)站的。");
 

那么,程序在輸出 "您是通過(guò)搜索引擎來(lái)到本網(wǎng)站的。" 之后,會(huì)繼續(xù)輸出case 2中的 "您是通過(guò)朋友介紹來(lái)到本網(wǎng)站的。" 。
 
第四、default是可選中,前面我們已經(jīng)說(shuō)過(guò)它的用處,及如果沒有default,程序在找不到匹配的case分支后,將在switch語(yǔ)句范圍內(nèi)不做什么事,直接完成switch。大家也可以在實(shí)例中將default的代碼注釋掉,然后試運(yùn)行,并且在選擇時(shí)輸入自定義的。
 
第五、必要時(shí),可在各個(gè)case中使用{}來(lái)明確產(chǎn)生獨(dú)立的復(fù)合語(yǔ)句。前面我們?cè)谥vif...語(yǔ)句和其它流程控制語(yǔ)句時(shí),都使用{}來(lái)產(chǎn)生復(fù)合語(yǔ)句:
復(fù)制代碼 代碼如下:

if (條件)
{
分支一;
}

除非在分支中的語(yǔ)句正好只有一句,這里可以不需要花括號(hào){}。但在switch的各個(gè)case語(yǔ)句里,我們?cè)谡Z(yǔ)法格式上就沒有標(biāo)出要使用{},請(qǐng)看:
復(fù)制代碼 代碼如下:

switch ( 整型或字符型變量 )
{
 case 變量可能值1 :
  分支一;
 break;
case 變量可能值2 :
....
}
 

一般教科書上只是說(shuō) case 分支可以不使用{},但這里我想提醒大家,并不是任何情況下case分支都可以不加{},比如你想在某個(gè)case里定義一個(gè)變量:
復(fù)制代碼 代碼如下:

switch (formWay)
{
case 1 :
int a=2; //錯(cuò)誤。由于case不明確的范圍,編譯器無(wú)法在此處定義一個(gè)變量。
...
case 2 :
...
}
 

在這種情況下,加上{}可以解決問(wèn)題。
復(fù)制代碼 代碼如下:

switch (formWay)
{
case 1 :
 { 
int a=2; //正確,變量a被明確限定在當(dāng)前{}范圍內(nèi)。
...
?。?
case 2 :
...
}

最后看一下例子程序:
復(fù)制代碼 代碼如下:

public class TestSwitch //基于字符型
{
public static void main(String[] args)
{
//聲明變量score,并為其賦值為'C'
char score = 'C';
//執(zhí)行swicth分支語(yǔ)句
switch (score)
{
case 'A':
System.out.println("優(yōu)秀.");
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("成績(jī)輸入錯(cuò)誤");
}
}
}

相關(guān)文章

  • 深度解析Spring內(nèi)置作用域及其在實(shí)踐中的應(yīng)用

    深度解析Spring內(nèi)置作用域及其在實(shí)踐中的應(yīng)用

    這篇文章主要詳細(xì)介紹了Spring內(nèi)置的作用域類型及其在實(shí)踐中的應(yīng)用,文中有詳細(xì)的代碼示例,對(duì)我們的餓學(xué)習(xí)或工作有一定的參考價(jià)值,感興趣的同學(xué)可以借鑒閱讀
    2023-06-06
  • Java實(shí)現(xiàn)post請(qǐng)求詳細(xì)代碼(帶有參數(shù))

    Java實(shí)現(xiàn)post請(qǐng)求詳細(xì)代碼(帶有參數(shù))

    這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)帶有參數(shù)post請(qǐng)求的相關(guān)資料,文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 這一次搞懂Spring的XML解析原理說(shuō)明

    這一次搞懂Spring的XML解析原理說(shuō)明

    這篇文章主要介紹了這一次搞懂Spring的XML解析原理說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • 詳解利用SpringMVC攔截器控制Controller返回值

    詳解利用SpringMVC攔截器控制Controller返回值

    這篇文章主要介紹了詳解利用SpringMVC攔截器控制Controller返回值,通過(guò)定義一個(gè)StringResult注解,在訪問(wèn)方法的時(shí)候返回StringResult中的內(nèi)容,有興趣的可以了解一下。
    2017-01-01
  • Java大文件分片上傳超詳細(xì)教程(minio版)

    Java大文件分片上傳超詳細(xì)教程(minio版)

    Minio是一個(gè)開源的分布式對(duì)象存儲(chǔ)系統(tǒng),它允許用戶在存儲(chǔ)服務(wù)上存儲(chǔ)和檢索數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Java大文件分片上傳(minio版)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • Java利用LocalDate進(jìn)行日期處理的完全指南

    Java利用LocalDate進(jìn)行日期處理的完全指南

    這篇文章主要為大家詳細(xì)介紹了Java利用LocalDate進(jìn)行日期處理的詳細(xì)教程,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • Java基于虹軟實(shí)現(xiàn)人臉識(shí)別、人臉比對(duì)、活性檢測(cè)等

    Java基于虹軟實(shí)現(xiàn)人臉識(shí)別、人臉比對(duì)、活性檢測(cè)等

    本文主要介紹了Java基于虹軟實(shí)現(xiàn)人臉識(shí)別、人臉比對(duì)、活性檢測(cè)等,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java8新特性之重復(fù)注解與類型注解詳解

    Java8新特性之重復(fù)注解與類型注解詳解

    這篇文章主要使介紹了Java8新特性重復(fù)注解與類型注解,文章還介紹了JDK5中的注解與之對(duì)比,感興趣的朋友可以參考下面具體文章內(nèi)容
    2021-09-09
  • SpringBoot使用jsoup爬取HTML的方法

    SpringBoot使用jsoup爬取HTML的方法

    jsoup 是一款 Java 的 HTML 解析器,它提供了一套非常便利的 API,可通過(guò) DOM、CSS 通過(guò)類似于 JQuery 的操作方法來(lái)取出和操作數(shù)據(jù),這篇文章主要介紹了SpringBoot使用jsoup爬取HTML,需要的朋友可以參考下
    2024-02-02
  • java String校招面試題過(guò)程詳解

    java String校招面試題過(guò)程詳解

    這篇文章主要介紹了java String校招面試題過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

昌都县| 蕉岭县| 容城县| 油尖旺区| 宜川县| 宁强县| 连南| 泸州市| 康定县| 湛江市| 贡觉县| 龙岩市| 武冈市| 威信县| 临海市| 平乡县| 布拖县| 台前县| 浦江县| 延安市| 尼勒克县| 冷水江市| 叙永县| 许昌县| 嵩明县| 望都县| 开远市| 承德市| 抚顺市| 青川县| 民县| 来宾市| 若羌县| 昌宁县| 甘肃省| 嵊泗县| 永清县| 原平市| 临颍县| 宁陵县| 综艺|