淺談選擇結(jié)構(gòu)if語(yǔ)句和switch語(yǔ)句的區(qū)別
1.選擇結(jié)構(gòu)if語(yǔ)句格式及其使用
A:if語(yǔ)句的格式:
if(比較表達(dá)式1) {
語(yǔ)句體1;
}else if(比較表達(dá)式2) {
語(yǔ)句體2;
}else if(比較表達(dá)式3) {
語(yǔ)句體3;
}
...
else {
語(yǔ)句體n+1;
}
B:執(zhí)行流程:
首先計(jì)算比較表達(dá)式1看其返回值是true還是false,
如果是true,就執(zhí)行語(yǔ)句體1,if語(yǔ)句結(jié)束。
如果是false,接著計(jì)算比較表達(dá)式2看其返回值是true還是false,
如果是true,就執(zhí)行語(yǔ)句體2,if語(yǔ)句結(jié)束。
如果是false,接著計(jì)算比較表達(dá)式3看其返回值是true還是false,
如果都是false,就執(zhí)行語(yǔ)句體n+1。
C:注意事項(xiàng):最后一個(gè)else可以省略,但是建議不要省略,可以對(duì)范圍外的錯(cuò)誤值提示
eg:
import java.util.Scanner; class Demo_If { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //鍵盤(pán)輸入, while(true) { System.out.println("請(qǐng)您輸入成績(jī)"); //提示輸入 int a = sc.nextInt(); //鍵盤(pán)輸入用int類(lèi)型接收 if (a>100|a<0) { //死循環(huán),方便測(cè)試 System.out.println("您輸入的成績(jī)有誤"); }else if (a>=90&a<=100) { System.out.println("A等"); }else if (a>=80&a<90) { System.out.println("B等"); }else if (a>=70&a<80) { System.out.println("C等"); }else if (a>=60&a<70) { System.out.println("D等"); }else if (a<60) { System.out.println("E等"); }else { System.out.println("您輸入的成績(jī)有誤"); } } } }
2.選擇結(jié)構(gòu)switch語(yǔ)句格式及其使用
A:switch格式:
switch(表達(dá)式) {
case 值1:
語(yǔ)句體1;
break;
case 值2:
語(yǔ)句體2;
break;
…
default:
語(yǔ)句體n+1;
break;
}
B:switch語(yǔ)句的格式解釋
(基本數(shù)據(jù)類(lèi)型,只要能提升為int的都可以,引用數(shù)據(jù)類(lèi)型中的枚舉(JDK1.5)和String(JDK1.7))
C:執(zhí)行流程
先計(jì)算表達(dá)式的值
然后和case后面的匹配,如果有就執(zhí)行對(duì)應(yīng)的語(yǔ)句,否則執(zhí)行default控制的語(yǔ)句
eg
import java.util.*; class Dome_If3{ public static void main(String[] args) { //System.out.println("Hello World!"); Scanner sc =new Scanner(System.in); //鍵盤(pán)錄入 while(true) { //死循環(huán)方便測(cè)試 System.out.println("請(qǐng)您 輸入要轉(zhuǎn)換的星期數(shù)"); //鍵盤(pán)錄入提示 in week = sc.nextInt(); switch(week) { case 1: System.out.println("星期1"); break; case 2: System.out.println("星期2"); break; case 3: System.out.println("星期3"); break; case 4: System.out.println("星期4"); break; case 5: System.out.println("星期5"); break; case 6: System.out.println("星期6"); break; case 7: System.out.println("星期天"); break; default: System.out.println("您輸入的數(shù)字有誤,請(qǐng)重新輸入"); } } } }
3:總結(jié)switch語(yǔ)句和if語(yǔ)句的各自使用場(chǎng)景
switch建議判斷固定值的時(shí)候用
if建議判斷區(qū)間或范圍的時(shí)候用
*用switch能做的,用if都能做,單反過(guò)來(lái)則不行
以上這篇淺談選擇結(jié)構(gòu)if語(yǔ)句和switch語(yǔ)句的區(qū)別就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于MyBatis的數(shù)據(jù)持久化框架的使用詳解
Mybatis是一個(gè)優(yōu)秀的開(kāi)源、輕量級(jí)持久層框架,它對(duì)JDBC操作數(shù)據(jù)庫(kù)的過(guò)程進(jìn)行封裝。本文將為大家講解一下基于MyBatis的數(shù)據(jù)持久化框架的使用,感興趣的可以了解一下2022-08-08java面向國(guó)際化項(xiàng)目開(kāi)發(fā)需遵循的命名規(guī)范
這篇文章主要為大家介紹了在參與開(kāi)發(fā)國(guó)際化項(xiàng)目時(shí)需遵循的java命名規(guī)范,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03SpringBoot整合rockerMQ消息隊(duì)列詳解
今天和大家一起深入生產(chǎn)級(jí)別消息中間件 - RocketMQ 的內(nèi)核實(shí)現(xiàn),來(lái)看看真正落地能支撐萬(wàn)億級(jí)消息容量、低延遲的消息隊(duì)列到底是如何設(shè)計(jì)的。我會(huì)先介紹整體的架構(gòu)設(shè)計(jì),然后再深入各核心模塊的詳細(xì)設(shè)計(jì)、核心流程的剖析2022-07-07智能 AI 代碼生成工具 Cursor 安裝和使用超詳細(xì)教程
Cursor.so 是一個(gè)集成了 GPT-4 的國(guó)內(nèi)直接可以訪問(wèn)的,優(yōu)秀而強(qiáng)大的免費(fèi)代碼生成器,可以幫助你快速編寫(xiě)、編輯和討論代碼,這篇文章主要介紹了智能 AI 代碼生成工具 Cursor 安裝和使用介紹,需要的朋友可以參考下2023-05-05SpringBoot編譯target目錄下沒(méi)有resource下的文件踩坑記錄
這篇文章主要介紹了SpringBoot編譯target目錄下沒(méi)有resource下的文件踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Java操作另一個(gè)Java程序使其重啟的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇Java操作另一個(gè)Java程序使其重啟的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03解決springboot?部署到?weblogic?中?jar?包沖突的問(wèn)題
這篇文章主要介紹了springboot?部署到?weblogic?中?jar?包沖突,weblogic?也有是解決方案的,可以通過(guò)新增并配置?weblogic.xml?文件來(lái)定義哪些類(lèi)需要優(yōu)先從項(xiàng)目工程包的?jar?包中加載,本文給大家分享解決方法,需要的朋友可以參考下2022-08-08