Java流程控制之選擇結(jié)構(gòu)
布爾表達(dá)式:
布爾表達(dá)式(Boolean expression)是一段代碼聲明,它最終只有true(真)和false(假)兩個(gè)取值。
最簡單的布爾表達(dá)式是等式(equality),這種布爾表達(dá)式用來測試一個(gè)值是否與另一個(gè)值相同。 例如:
2 == 4 ? --------------> false
1、if單選擇結(jié)構(gòu)
我們平常經(jīng)常會(huì)面臨選擇,所以選擇結(jié)構(gòu)對于我們編程來說也是非常重要的,比如:
如果明天晴天,我們就一起去草場放風(fēng)箏;
如圖:

if(布爾表達(dá)式){
//如果布爾表達(dá)式為true將執(zhí)行的語句
}
注意:if單選擇結(jié)構(gòu):if語句對條件表達(dá)式進(jìn)行一次判斷,若判斷為真,則執(zhí)行下面的語句,否則跳過該語句。
實(shí)例助解:接收一個(gè)用戶的輸入,判斷輸入的是否為字符串"Liusu":
import java.util.Scanner;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//接收用戶輸入
System.out.print("請輸入內(nèi)容:");
String s = scanner.nextLine();
if (s.equals("Liusu")){
System.out.println("輸入的是:"+s);
}
System.out.println("End");
scanner.close();
}
輸出演示,如圖:

注釋:equals方法是用來進(jìn)行字符串的比較的
2、if雙選擇結(jié)構(gòu)
比如你去買鍵盤,鍵盤108元。如果你身上當(dāng)時(shí)帶有金額大于等于108元,那買鍵盤,否則,不買。(僅舉例)
所以對于這樣的需求用一個(gè)if就搞不定了,我們需要有兩個(gè)判斷,需要一個(gè)雙選擇結(jié)構(gòu),所以就有了if-else結(jié)構(gòu)。
如圖:

if(布爾表達(dá)式){
//如果布爾表達(dá)式的值為true
}else{
//如果布爾表達(dá)式的值為false
}
if雙選擇結(jié)構(gòu):當(dāng)條件表達(dá)式為真時(shí),執(zhí)行語句塊1,否則,執(zhí)行語句塊2。也就是else部分。
實(shí)例助解:你去買鍵盤,鍵盤108元。如果你身上當(dāng)時(shí)帶有金額大于等于108元,那買鍵盤,否則,不買。
import java.util.Scanner;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("請輸入x值:");
int x = scanner.nextInt();
if (x>=108){
System.out.println("鍵盤");
}else {
System.out.println("余額正在加載中...");
}
scanner.close();
}
輸出演示,如圖:

3、if多選擇結(jié)構(gòu)
真實(shí)的情況還可能存在很多種,存在區(qū)間多級判斷。在生活中我們很多時(shí)候的選擇也不僅僅只有兩個(gè),所以我們需要一個(gè)多選擇結(jié)構(gòu)來處理這類問題!
如圖:

if(布爾表達(dá)式 1){
//如果布爾表達(dá)式 1的值為true執(zhí)行代碼
}else if(布爾表達(dá)式 2){
//如果布爾表達(dá)式 2的值為true執(zhí)行代碼
}else if(布爾表達(dá)式 3){
//如果布爾表達(dá)式 3的值為true執(zhí)行代碼
}else {
//如果以上布爾表達(dá)式都不為true執(zhí)行代碼
}
if多選擇結(jié)構(gòu):if 語句后面可以跟 else if…else 語句,可以判斷多種情況。
使用 if,else if,else 語句的時(shí)候,需要注意下面幾點(diǎn):
- if 語句至多有 1 個(gè) else 語句。
- if 語句可以有若干個(gè) else if 語句。
- else if在else之前
- 一個(gè) else if 語句檢測為 true,其他的 else if 、 else 語句都將跳過執(zhí)行。
實(shí)例助解:簡單的數(shù)值判斷
public class Test {
public static void main(String args[]){
int x = 66;
if( x == 22 ){
System.out.print("x:22");
}else if( x == 44 ){
System.out.print("x:44");
}else if( x == 66 ){
System.out.print("x:66");
}else{
System.out.print("看來您的選擇不在選項(xiàng)當(dāng)中...");
}
}
}
輸出演示,如圖:

4、嵌套的if結(jié)構(gòu)
注意:嵌套的 if…else 語句也是可以的。所有的流程控制語句都可以互相嵌套,互不影響!
if(布爾表達(dá)式 1){
如果布爾表達(dá)式 1的值為true執(zhí)行代碼
if(布爾表達(dá)式 2){
如果布爾表達(dá)式 2的值為true執(zhí)行代碼
}
}
實(shí)例助解:判斷x
public static void main(String args[]){
int x = 66;
if( x > 22 ){
System.out.println("x>22");
if(x > 44){
System.out.println("x>44");
}
}
}
輸出演示,如圖:

5、switch多選擇結(jié)構(gòu)
多選擇結(jié)構(gòu)還有一個(gè)實(shí)現(xiàn)方式就是switch case 語句。switch case 語句判斷一個(gè)變量與一系列值中某個(gè)值是否相等,每個(gè)值稱為一個(gè)分支。
switch(expression){
case value :
//語句
break; //可選
case value :
//語句
break; //可選
//case...
default : //可選
//語句
}
switch case 語句有如下規(guī)則:
switch語句中的變量類型可以是:byte、short、int、char、字符串String類型。switch語句可以擁有多個(gè) case 語句。case語句中的值的數(shù)據(jù)類型必須與變量的數(shù)據(jù)類型相同,而且只能是常量或者字面常量。
注意:當(dāng)變量的值與 case 語句的值相等時(shí),那么 case 語句之后的語句開始執(zhí)行,直到 break 語句出現(xiàn)才會(huì)跳出 switch 語句。(break語句非必須)
關(guān)于switch中default:
switch語句可以包含一個(gè)default分支------->最后一個(gè)分支(可以在任何位置,但建議在最后一個(gè))。- default 在沒有 case 語句的值和變量值相等的時(shí)候執(zhí)行。
- default 分支不需要 break 語句。
實(shí)例助解:
public static void main(String args[]){
char grade = 'C';
switch(grade)
{
case 'A' :
System.out.println("優(yōu)秀");
break;
case 'B' :
case 'C' :
System.out.println("良好");
break;
case 'D' :
System.out.println("及格");
break;
case 'F' :
System.out.println("謝謝參與!加油!");
break;
default :
System.out.println("您的等級已不在該范圍內(nèi)...");
}
System.out.println("你的等級是 " + grade);
}
輸出演示,如圖:

6、補(bǔ)充:case穿透
如果 case 語句塊中沒有 break 語句時(shí),匹配成功后,從當(dāng)前 case 開始,后續(xù)所有 case 的值都會(huì)輸
出。如果后續(xù)的 case 語句塊有 break 語句則會(huì)跳出判斷。
public static void main(String args[]){
int i = 4;
switch(i){
case 0:
System.out.println("0");
case 1:
System.out.println("1");
case 2:
System.out.println("2");
case 3:
System.out.println("3");
case 4:
System.out.println("4");
case 5:
System.out.println("5");
break;
default:
System.out.println("default");
}
}
輸出演示,如圖:

到此這篇關(guān)于Java流程控制之選擇結(jié)構(gòu)的文章就介紹到這了,更多相關(guān)Java選擇結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 一文詳解Java中流程控制語句
- 詳解Java中的三種流程控制語句
- JAVA?流程控制專項(xiàng)精講
- Java程序控制邏輯—流程控制
- Java流程控制break和continue
- Java流程控制之循環(huán)結(jié)構(gòu)for,增強(qiáng)for循環(huán)
- Java流程控制之循環(huán)結(jié)構(gòu)while、do...while
- Java流程控制之順序結(jié)構(gòu)
- 新手初學(xué)Java流程控制
- Java流程控制語句之If選擇結(jié)構(gòu)
- 詳解Java中的流程控制
- Java常用流程控制語句實(shí)現(xiàn)原理解析
- 深入分析JAVA流程控制語句
- Java程序流程控制:判斷結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)原理與用法實(shí)例分析
- Java流程控制順序結(jié)構(gòu)原理解析
- 基于java中的流程控制語句總結(jié)(必看篇)
- 詳解JAVA流程控制語句
- Java流程控制語句最全匯總(中篇)
相關(guān)文章
Spring中@DependsOn注解的使用代碼實(shí)例
這篇文章主要介紹了Spring中@DependsOn注解的使用代碼實(shí)例,Spring中@DependsOn,主要是使用在類和方法上, 作用是當(dāng)前對象要依賴另外一些對象,被依賴的對象會(huì)先注冊到Spring的IOC容器中,需要的朋友可以參考下2024-01-01
JAVA遞歸與非遞歸實(shí)現(xiàn)斐波那契數(shù)列
這篇文章主要為大家詳細(xì)介紹了JAVA遞歸與非遞歸實(shí)現(xiàn)斐波那契數(shù)列,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
SpringBoot如何手寫一個(gè)starter并使用這個(gè)starter詳解
starter是SpringBoot中的一個(gè)新發(fā)明,它有效的降低了項(xiàng)目開發(fā)過程的復(fù)雜程度,對于簡化開發(fā)操作有著非常好的效果,下面這篇文章主要給大家介紹了關(guān)于SpringBoot如何手寫一個(gè)starter并使用這個(gè)starter的相關(guān)資料,需要的朋友可以參考下2022-12-12
Java FileDescriptor總結(jié)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
FileDescriptor 是“文件描述符”??梢员挥脕肀硎鹃_放文件、開放套接字等。接下來通過本文給大家分享Java FileDescriptor總結(jié),感興趣的朋友一起學(xué)習(xí)吧2017-05-05
java如何根據(jù)HttpServletRequest獲取IP地址
文章介紹了幾種代理服務(wù)器轉(zhuǎn)發(fā)服務(wù)請求頭的方法,這些請求頭可能包含真實(shí)IP地址,但并不是所有的代理都會(huì)包括這些請求頭,而且這些IP地址可能被偽造2025-03-03
SpringBoot中利用MyBatis進(jìn)行數(shù)據(jù)操作的示例
這篇文章主要介紹了SpringBoot中利用MyBatis進(jìn)行數(shù)據(jù)操作,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09
spring boot中的條件裝配bean的實(shí)現(xiàn)
這篇文章主要介紹了spring boot中的條件裝配bean的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

