第四章

選擇結構(二)

學習本章會用到的單詞:

case:實例,情形,情況

switch:轉換,切換,開關

default:系統默認值,違約,預設。缺省

exit:出口,通道,退出

consume:消耗,耗費,

exception:例外,除外,異議


?

switch選擇結構

????????????????? 語法:switch(表達式){

         case 常量 1:

            //代碼塊1;

          ?   break;

????????       ? case 常量 2:

            //代碼塊2;

            break;

        ??? ......    

??????????????????????????????? default:

???????????????????????????????????????? //代碼塊n;

??????????????       break;

????????????????????????? }

switch結構中四個關鍵字解釋:

這里是switch,case,default,break,都是Java的關鍵字。

》switch:表示:“開關”,這個開關就是switch關鍵字后面小括號里表達式的值,JDK1.7后,switch語句小括號里可以是int ,short,byte ,char,枚舉類型 ,String類型表達式。

》case:表示“情況,情形”,case后可以是int,short,byte ,char,枚舉,String類型,通常是一個固定的值。case塊可以有多個,順序可以改變,但是每個case后常量的值必須各不相同。

》default:表示默認,即其他情況都不滿足。default后要緊跟冒號。default塊和case塊的先后順序可以變動,不會影響程序執行的結果。通常,default塊放在末尾,也可以省略。

》 break:表示“停止”,即跳出當前結構。

switch選擇結構的執行具體過程:

先計算并獲得switch后面小括號里的表達式或變量的值,然后將計算結果順序與每個case后的常量比較,當二者相等時,執行這個case塊中的代碼;當遇到break時,就跳出switch選擇結構。執行switch選擇結構之后的代碼。如果沒有任何一個case后的常量與switch后的小括號中的值相等,則執行switch末尾部分的default塊中的代碼。

注意!

雖然break語句是可以省略的,,但是省略后會帶來一些問題。省略之后的后果為,當某個case后的常量值與switch后小括號中的值相匹配時,執行該case塊的代碼,后面的case就不再進行條件判斷,而直接執行后面所有case塊中的代碼,直到遇到break結束。所以在編寫switch選擇結構時不要忘記在每個case塊后加上一個“break;”,用來跳出switch選擇結構。

每個case后的代碼塊可以有多個語句,即可以有一組語句。而且不需要用“{ }”括起來。case和default后都有一個冒號,不能漏寫,否則編譯不能通過。對于每個case的結尾都要想一想是否需要跳出整個switch選擇結構。如果需要,一定不要忘記寫“break;”。

小結

swith選擇結構的條件只能是等值的判斷,而且只能是整形或字符型的等值判斷。也就是說,switch選擇結構只能用于判斷一個整型變量或表達式是否等于某個整數值的情況,或者一個字符型變量或表達式是否等于某個字符的情況,并且每一個case后面的常量值都不同。多重if選擇結構和switch選擇結構很相似,它們都是用來處理多分支條件的結構,但是switch選擇結構只能用于等值條件判斷的情況。

選擇結構總結

>Java中的if選擇結構,包括以下形式。

基本的if選擇結構:可以處理單一或組合條件的情況。

語法:

if(條件){

????????? //代碼塊

}

?????? if-else選擇結構:可以處理簡單的條件分支情況。這種形式結構簡單,但在實際開發中使用非常頻繁。

語法:

if(條件1){

???????? //代碼塊1

}else{

  //代碼塊2

}

多重if選擇結構:可以處理復雜的條件分支情況。多重if選擇結構在解決需要判斷的條件是連續的區間時有很大的優勢。

語法:

if(條件1){

    //代碼塊1

}else if(條件2){

    //代碼塊2

}else{

    //代碼塊3

}

其中,else? if塊可以有多個,也可以沒有,需要幾個else if完全取決于實際需求。else塊最多有一個或者沒有,else塊必須要放在else?? if塊之后。

嵌套if選擇結構:在if選擇結構中又包含一個或多個if選擇結構的情況,這種結構一般用于較為復雜的流程控制中。if選擇結構嵌套的形式很多,以下形式為基本的結構。

語法:

if(條件1){

  if(條件2){

    //代碼塊1

????????? }else{

    //代碼塊2

   }

}else{

  if(條件3){

    //代碼塊3

  }else{

    //代碼塊4

  }

}

Java中的switch選擇結構。

當需要多重分支并且條件判斷是等值判斷的情況下,使用switch選擇結構代替多重if選擇結構會更簡單,代碼結構更清晰易讀。

處理系統異常

》通過調用Scanner對象的hasNextInt()方法,來判斷用戶從鍵盤上輸入的字符是否合法,如果用戶提示輸入的是數值,則根據輸入的具體數值跳轉到相應的菜單,如果用戶輸入的不是數字,則給出好友提示“請輸入正確的數字!”.

通過判斷,并給出用戶提示,增加了程序的健壯性,是程序能夠較好地處理發生的異常,在后面的學習中將介紹更多處理程序異常的方法。

本章總結

》當需要多重分支并且條件判斷是等值判斷的情況下,使用switch選擇結構代替多重if選擇結構會更簡單,代碼更清晰易讀。在使用switch選擇結構時不要忘記在每個case的最后上寫上break語句。

》為了增加程序的健壯性,可以在程序中主動做出判斷,并給用戶友好的提示。

》在實際開發中,遇到分支情況時,通常會綜合運用if選擇結構的各種形式及switch選擇結構來解決。

轉載于:https://www.cnblogs.com/mrgaoyuan/p/7650718.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253187.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253187.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253187.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

tensorflow的一些函數

1.tf.constant(value,dtypeNone,shapeNone,nameConst) 注意這個函數創造的是一個常數tensor,而不是一個具體的常數 value:即可以是list,也可以是value dtype:對應生成的tensor里的元素的類型 # Constant 1-D Tensor populated with value list.tensor t…

生活小常識

1、面試時說三個月試用期可以縮短的不要相信,可以談談別的條件 2、在飯店吃飯滿幾桌送下次吃飯的卷的不要信。可能你會沒時間,或飯店沒地方。(談談當時可以送的其他優惠。或者根據自己的需求定桌數,不要被他誘惑湊桌)轉…

IP、TCP、UDP數據包長度問題

IP數據包長度問題總結 首先要看TCP/IP協議,涉及到四層:鏈路層,網絡層,傳輸層,應用層。   其中以太網(Ethernet)的數據幀在鏈路層    IP包在網絡層   TCP或UDP包在傳輸層    TCP或UDP中的…

RK瑞芯微WIFI模組2020最新支持列表,放心使用!

如下所示為RK瑞芯微2020最新支持的WIFIBT模組列表,請參考! 標題希望對選型有所幫助,避免踩坑,坑驅動工程師! 有事要搞,請私聊!

數據類型進階

----------siwuxie095 1、整數類型 如果去掉注釋,報錯:Type mismatch: cannot convert from into byte 即 不能把 int 類型轉換成 byte 類型 如果選擇 Add cast to byte: 即 把 b13 的結果(默認為 int 類型)強制轉換成…

區塊鏈教程Fabric1.0源代碼分析流言算法Gossip服務端二

區塊鏈教程Fabric1.0源代碼分析流言算法Gossip服務端二 Fabric 1.0源代碼筆記 之 gossip(流言算法) #GossipServer(Gossip服務端) 5.2、commImpl結構體方法 //conn.serviceConnection(),啟動連接服務 func (c *commImp…

一段H264數據的分析

目錄(?)[-] 分析00 00 00 01 67 42 00 1E 99 A0 B1 31 00 00 00 01分析00 00 00 01 68 CE 38 80 00 00 00 01 分析00 00 00 01 67 42 00 1E 99 A0 B1 31 00 00 00 01 H264的數據流分為兩種,一種是NAL UNIT stream(RTP),一種是 bits stream…

海華模組:WIFI、BT、SoC模組列表

各種模塊廣泛應用于網絡攝像頭、智能機器人、兒童故事機、詞典筆、智能音箱、智能家電等需要實現無線聯網設備的消費類電子產品。 模塊化有很大的有點:集成設計、減少調試工作,避開開發盲區、加速將產品推向市場! 下面介紹下海華各類通訊模…

JAVA-初步認識-第七章-構造函數和一般函數的區別

一. 構造函數是對象一創建,就被調用了。(調用這個詞很特殊,是涉及到實體時,才會有調用的過程) 還有一點想說的是,構造函數的聲明應該是固定的,不然沒法隨著對象的創建一起執行,必須是類名括號的形式。 二. …

深入理解哈希表

轉自:https://bestswifter.com/hashtable/ 這篇文章由一個簡單的問題引出: 有兩個字典,分別存有 100 條數據和 10000 條數據,如果用一個不存在的 key 去查找數據,在哪個字典中速度更快? 有些計算機常識的讀者都會立刻回…

Linux服務器ftp+httpd部署

一、ftp安裝 1、安裝vsftpd 命令:yum -y install vsftpd 2、修改ftp配置文件 命令:vim /etc/vsftpd/vsftpd.conf 3、按i進入insert模式后,按以下要求修改 anonymous_enableYES 改為anonymous_enableNO chroot_local_userYES #去掉前面的注釋 …

高清網絡攝像機主流芯片方案之安霸、TI和海思對比

高清網絡視頻監控發展到今天,市場也開始進入真正的高清時代,諸多有實力的高清攝像機廠家的產品線也逐漸完善起來,高清網絡視頻監控的配套產品有更加豐富和成熟。與此同時困擾很多人的高清網絡攝像機與后端平臺或者與后端NVR互聯互通的問題也在…

ios審核4.3被拒,快速通過IOS4.3問題

最近有許多開發者遇到了因為審核條款 4.3(后文統一簡稱 4.3)審核條款 4.3(后文統一簡稱 4.3),這種情況 常見于大家上傳重復應用的時候,因為App Store 已經有了很多相似的應用 而被打回,今天我們…

正基模組:WIFI/BT/GPS/FM模組列表

各種模塊廣泛應用于網絡攝像頭、智能機器人、兒童故事機、詞典筆、智能音箱、智能家電等需要實現無線聯網設備的消費類電子產品。 模組由于其特性,給終端硬件開發帶來巨大的便利性和實用性,具體小結如下: Feature特點:1. 模塊均采用郵票孔形…

計算機網絡基礎教程---強烈推薦!來自銳捷官方網站

一、計算機網絡基礎教程 說明:每個教程的時間大約為6分鐘,以問題為導向,以項目為驅動。1、第一章 IPV4地址介紹 http://www.ruijie.com.cn/fw/zxpx/4092、第二章 TCP/IP協議簇介紹 http://www.ruijie.com.cn/fw/zxpx/4103、第三章 ARP協議工作…

楊冪掐點祝福唐嫣,打破不和傳言,情感營銷還能這么玩?

發現今天的蜂蜜泡水特別地甜,舍友說,同樣地蜂蜜同樣多的水泡出來的水有什么不一樣,肯定是你心情變好了。說得好像也有道理,想想最近這么多甜蜜的事,一開始是穎寶結婚,不久唐嫣和羅晉也宣布結婚,…

RTP/RTCP協議介紹

1流媒體協議 當前在Internet上傳輸音頻和視頻等信息主要有兩種方式:下載和流式傳輸。 下載情況下,用戶需要先下載整個媒體文件到本地,然后才能播放媒體文件。流式傳輸是指傳輸之前首先對多媒體進行預處理(降低質量和高效壓縮),然后…

推薦一款軟件(作業)

在過去,每當我遇見不認識的英文單詞時我的解決方法是:查閱英漢詞典,后來在我擁有手機之后,我的解決方法是:上網百度,而現在我的解決方法是:“有道翻譯官”。是的,我要介紹的這款軟件便是“有道翻…

網易有道最新力作 有道詞典筆3 結構拆解

2020年12月1日,有道品牌推出了一款硬件新品,名叫有道詞典筆3。 網易有道于2019年8月推出可以“一掃查詞”的有道詞典筆2代,搭載了OCR(光學字符識別)技術的產品,大大改變了傳統的學習方式,查詞效…

DataGridView動態添加新行的兩種方法

簡單介紹如何為DataGridView控件動態添加新行的兩種方 法: 方法一: int indexthis.dataGridView1.Rows.Add();this.dataGridView1.Rows[index].Cells[0].Value "1"; this.dataGridView1.Rows[index].Cells[1].Value "2"; this.dat…