欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

float a = 0.123;
switch(a) //錯誤!a不是整型或字符類型變量。
{
....
}
 

第二、case 之后可以是直接的常量數(shù)值,如例中的1、2、3、4,也可以是一個使用常量計算式,如2+2等,但不能是變量或帶有變量的表達式,如 a * 2等。當然也不能是實型數(shù),如4.1,或2.0 / 2 等。
復(fù)制代碼 代碼如下:

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

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

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

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

if (條件)
{
分支一;
}

除非在分支中的語句正好只有一句,這里可以不需要花括號{}。但在switch的各個case語句里,我們在語法格式上就沒有標出要使用{},請看:
復(fù)制代碼 代碼如下:

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

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

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

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

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

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

public class TestSwitch //基于字符型
{
public static void main(String[] args)
{
//聲明變量score,并為其賦值為'C'
char score = 'C';
//執(zhí)行swicth分支語句
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("成績輸入錯誤");
}
}
}

相關(guān)文章

  • java calendar 日期實現(xiàn)不斷加一天的代碼

    java calendar 日期實現(xiàn)不斷加一天的代碼

    這篇文章主要介紹了java calendar 日期實現(xiàn)不斷加一天的代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 微信公眾號 網(wǎng)頁授權(quán)登錄及code been used解決詳解

    微信公眾號 網(wǎng)頁授權(quán)登錄及code been used解決詳解

    這篇文章主要介紹了微信公眾號 網(wǎng)頁授權(quán)登錄及code been used解決詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 一文帶你弄清Map集合及其實現(xiàn)類

    一文帶你弄清Map集合及其實現(xiàn)類

    在Java中,Map是一種鍵值對(Key-Value)的集合,它存儲了一組唯一的鍵與相應(yīng)的值,每個鍵可以映射到一個值,這篇文章將詳細介紹Map集合及其一些常見的實現(xiàn)類,適合小白,感興趣的同學(xué)可以參考閱讀
    2023-06-06
  • Java實現(xiàn)單例設(shè)計模式方法解析

    Java實現(xiàn)單例設(shè)計模式方法解析

    這篇文章主要介紹了Java實現(xiàn)單例設(shè)計模式方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • 解析ConcurrentHashMap: 紅黑樹的代理類(TreeBin)

    解析ConcurrentHashMap: 紅黑樹的代理類(TreeBin)

    ConcurrentHashMap是由Segment數(shù)組結(jié)構(gòu)和HashEntry數(shù)組結(jié)構(gòu)組成。Segment的結(jié)構(gòu)和HashMap類似,是一種數(shù)組和鏈表結(jié)構(gòu),今天給大家普及java面試常見問題---ConcurrentHashMap知識,一起看看吧
    2021-06-06
  • java Zookeeper簡述

    java Zookeeper簡述

    ZooKeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個開源的實現(xiàn),是Hadoop和Hbase的重要組件。下面通過本文給大家分享java 中 zookeeper簡單使用,需要的朋友參考下吧
    2021-09-09
  • java9在interface中定義私有方法詳解

    java9在interface中定義私有方法詳解

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于java9在interface中定義私有方法,有興趣的朋友們可以學(xué)習(xí)下。
    2020-10-10
  • Maven聚合開發(fā)實例詳解

    Maven聚合開發(fā)實例詳解

    這篇文章主要介紹了Maven聚合開發(fā)實例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 淺談Hibernate n+1問題

    淺談Hibernate n+1問題

    這篇文章主要介紹了淺談Hibernate n+1問題,怎么解決n+1問題,文中也作了簡要分析,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • SpringBoot Starter依賴原理與實例詳解

    SpringBoot Starter依賴原理與實例詳解

    SpringBoot中的starter是一種非常重要的機制,能夠拋棄以前繁雜的配置,將其統(tǒng)一集成進starter,應(yīng)用者只需要在maven中引入starter依賴,SpringBoot就能自動掃描到要加載的信息并啟動相應(yīng)的默認配置。starter讓我們擺脫了各種依賴庫的處理,需要配置各種信息的困擾
    2022-09-09

最新評論