Java分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)原理與用法詳解
本文實(shí)例講述了Java分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。分享給大家供大家參考,具體如下:
流程控制分類
- 順序語句:從上到下按順序依次執(zhí)行
- 分支語句:根據(jù)條件不同,執(zhí)行不同語句
- 循環(huán)語句:重復(fù)執(zhí)行某些動(dòng)作
單分支條件判斷語句
條件語句
只是單獨(dú)的判斷條件是否成立
if選擇結(jié)構(gòu)是根據(jù)條件判斷之后再做處理
語法
if(布爾表達(dá)式) { //如果布爾表達(dá)式為true將執(zhí)行的語句 }
注意:條件必須是boolean類型
if只帶一條語句可以省略{}
雙分支條件判斷語句
if...else...需要對(duì)條件成立和不成立的情況分別處理
if 語句后面可以跟 else 語句,當(dāng) if 語句的布爾表達(dá)式值為 false 時(shí),else 語句塊會(huì)被執(zhí)行。
語法
if(條件){ //代碼塊1 }else{ //代碼塊2 }
多分支條件判斷語句
if...else if...else 語句
語法
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í)行代碼 }
注意:多個(gè)條件用多個(gè) else if,而if只能有一個(gè);
else可以省略,表示以上條件都不成立執(zhí)行else
if,else if,else只帶一條語句可以省略{}
String類型比較字符串相等的方法
字符串1.equals("字符串2");//相等 true 不相等false
== 判斷的是內(nèi)存地址,是否為同一對(duì)象,不是字符串值。
int num2 = input.nextInt(); boolean flag = num2.equals("+");
switch語句
switch 語句判斷一個(gè)變量與一系列值中某個(gè)值是否相等,每個(gè)值稱為一個(gè)分支。
語法
witch(expression){ case value : //語句 break; //可選 case value : //語句 break; //可選 //你可以有任意數(shù)量的case語句 default : //可選 //語句 }
switch和多重if的區(qū)別
【1】switch只能進(jìn)行等值的條件判斷;多重if可以判斷任何情況,但多用于范圍的判斷;
【2】同樣都是等值的判斷,switch效率要高一些
switch注意:
【1】支持標(biāo)簽堆疊:空標(biāo)簽羅列在一起
【2】多個(gè)條件判斷可以有多個(gè)case標(biāo)簽
【3】default:標(biāo)簽可以省略
【4】break;結(jié)束switch不加 繼續(xù)執(zhí)行;
【5】表達(dá)式的類型與值的類型要一致,只能是byte,short,int,char,String,枚舉
package test; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("輸入一個(gè)月份:"); int month = input.nextInt(); switch(month) { case 3: case 4: case 5: System.out.println("春天"); break; case 6: case 7: case 8: System.out.println("夏天"); break; case 9: case 10: case 11: System.out.println("秋天"); break; case 12: case 1: case 2: System.out.println("冬天"); break; default: System.out.println("輸入的月份不正確!"); } System.out.println("Game Over!"); } }
分支語句嵌套
if(條件1){ if(條件2){ 代碼塊; } }
注意:只有外層 條件1 成立true,才能進(jìn)行內(nèi)層 條件2 的判斷。
循環(huán)語句
循環(huán):重復(fù)執(zhí)行的操作。
特點(diǎn):循環(huán)條件
循環(huán)操作
分類:
非固定次數(shù)循環(huán)
while
do - while
固定次數(shù)循環(huán)
for
非固定次數(shù)循環(huán)
while(條件){ 循環(huán)體;//循環(huán)操作 }
特點(diǎn):先進(jìn)行條件判斷,后執(zhí)行循環(huán)操作。
解決循環(huán)次數(shù)固定的問題:
三要素:1.循環(huán)變量的初值;
2.循環(huán)變量的終止值(條件)
3.循環(huán)變量變化的值(迭代,增量)
解決非固定次數(shù)問題:
解題方法:1.確定循環(huán)條件
2.確定循環(huán)體;
do-while循環(huán)
do{ 循環(huán)體; }while(循環(huán)條件);
注意:先執(zhí)行,后判斷條件;
固定次數(shù)循環(huán)
for(初值;條件終止值;增量){ 循環(huán)操作; }
注意:先條件判斷
支持逗號(hào)表達(dá)式
跳轉(zhuǎn)語句
break
【1】用在switch和循環(huán)中
【2】用在單層循環(huán)中,用來結(jié)束循環(huán)
continue
【1】continue語句用來結(jié)束本次循環(huán)
【2】用在循環(huán)語句中
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
SpringBoot進(jìn)行Web開發(fā)的實(shí)現(xiàn)
Spring?Boot讓我們可以快速構(gòu)建項(xiàng)目并運(yùn)行web應(yīng)用,大大簡(jiǎn)化了Spring的復(fù)雜配置,本文主要介紹了SpringBoot進(jìn)行Web開發(fā)的實(shí)現(xiàn),感興趣的可以了解一下2023-10-10java樹結(jié)構(gòu)stream工具類的示例代碼詳解
Stream 作為 Java 8 的一大亮點(diǎn),它與 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。今天通過本文重點(diǎn)給大家介紹java樹結(jié)構(gòu)stream工具類的示例代碼,感興趣的朋友一起看看吧2022-03-03使用fastjson中的JSONPath處理json數(shù)據(jù)的方法
這篇文章主要介紹了使用fastjson中的JSONPath處理json數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04淺談Java中Lambda表達(dá)式的相關(guān)操作
java8新特性,Lambda是一個(gè)匿名函數(shù),類似Python中的Lambda表達(dá)式、js中的箭頭函數(shù),目的簡(jiǎn)化操作,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06java實(shí)現(xiàn)單機(jī)版五子棋小游戲
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)單機(jī)版五子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12解決idea每次打開新的項(xiàng)目都需要重新配置maven問題
這篇文章主要介紹了解決idea每次打開新的項(xiàng)目都需要重新配置maven問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05關(guān)于解決雪花算法生成的ID傳輸前端后精度丟失問題
這篇文章主要介紹了關(guān)于解決雪花算法生成的ID傳輸前端后精度丟失問題,雪花算法生成的ID傳輸?shù)角岸藭r(shí),會(huì)出現(xiàn)后三位精度丟失,本文提供了解決思路,需要的朋友可以參考下2023-03-03Spring\SpringBoot配置連接數(shù)據(jù)庫的方法
最近在學(xué)習(xí)SpringBoot,第一步就是要配置數(shù)據(jù)庫,本文詳細(xì)的介紹了Spring\SpringBoot配置連接數(shù)據(jù)庫的方法,有需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06