Java基礎(chǔ)之選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)
一、選擇結(jié)構(gòu)
根據(jù)已知條件進(jìn)行邏輯判斷,滿足條件后執(zhí)行響應(yīng)的操作
1.1基本if選擇結(jié)構(gòu)
1.1.1語法
if(布爾表達(dá)式){
// 代碼塊
}
1.1.2執(zhí)行流程
對(duì)布爾表達(dá)式進(jìn)行判斷:
如果結(jié)果為true,執(zhí)行代碼塊,執(zhí)行完成后執(zhí)行后續(xù)代碼;
如果結(jié)果為false,不會(huì)執(zhí)行代碼塊,執(zhí)行后續(xù)代碼
1.1.3代碼展示
public class Demo1 {
public static void main(String[] args) {
if(1==1) {
System.out.println("判斷正確");
}
System.out.println("程序運(yùn)行結(jié)束");
}
}
1.1.4運(yùn)行結(jié)果
判斷正確
程序運(yùn)行結(jié)束
1.2平衡if選擇結(jié)構(gòu)
1.2.1語法
if(布爾表達(dá)式){
// 代碼塊1
}else{
// 代碼塊2
}
1.2.2執(zhí)行流程
對(duì)布爾表達(dá)式進(jìn)行判斷:
如果結(jié)果為true,執(zhí)行代碼塊1,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼
如果結(jié)果為false,執(zhí)行代碼塊2,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼
1.2.3代碼展示
public class Demo1 {
public static void main(String[] args) {
int score=79;
if(score>60) {
System.out.println("恭喜,成績及格");
}else {
System.out.println("很遺憾,成績不及格");
}
System.out.println("退出程序.....");
}
}
1.2.4運(yùn)行結(jié)果
恭喜,成績及格
退出程序.....
1.3重復(fù)if選擇結(jié)構(gòu)
1.3.1語法
if(布爾表達(dá)式1){
// 代碼塊1
}else if(布爾表達(dá)式2){
// 代碼塊2
}…
else if(布爾表達(dá)式n){
// 代碼塊n
}else{
// 代碼塊n+1
}
1.3.2執(zhí)行流程
對(duì)布爾表達(dá)式1進(jìn)行判斷:
如果布爾表達(dá)式1結(jié)果為true,執(zhí)行代碼塊1,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼
如果布爾表達(dá)式1結(jié)果為false,對(duì)布爾表達(dá)式2進(jìn)行判斷:
如果布爾表達(dá)式2結(jié)果為true,執(zhí)行代碼塊2,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼
如果結(jié)果為false…
若所有表達(dá)式都為false,執(zhí)行執(zhí)行代碼塊n+1,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼
所有if語句是相互排斥的,只要其中一個(gè)布爾表達(dá)式為true,其余不在執(zhí)行,適用于區(qū)間判斷
1.3.3代碼展示
public class Demo1 {
public static void main(String[] args) {
//score<60,不及格
//60<=score<80 中等
//80<=score<90 良好
// 90<=score<=100 優(yōu)秀
int score=79;
if(score>=90) {
System.out.println("恭喜,成績優(yōu)秀");
}else if(score>=80){
System.out.println("恭喜,成績良好");
}else if(score>=60) {
System.out.println("恭喜,成績中等");
}else {
System.out.println("很遺憾,成績不及格");
}
System.out.println("退出程序.....");
}
}
1.3.4運(yùn)行結(jié)果
恭喜,成績中等
退出程序....
1.4嵌套重復(fù)結(jié)構(gòu)
1.4.1語法
if(外部布爾表達(dá)式){
if(內(nèi)部布爾表達(dá)式){
//內(nèi)層代碼塊1
}else{
//內(nèi)層代碼塊2
}
}else{
//外部代碼塊1
}
1.4.2執(zhí)行流程
先對(duì)外層布爾表達(dá)式進(jìn)行判斷:
如果外層布爾表達(dá)式結(jié)果為true,再判斷內(nèi)層布爾表達(dá)式:
如果內(nèi)層布爾表達(dá)式結(jié)果為true,執(zhí)行內(nèi)層代碼塊1,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼
如果內(nèi)層布爾表達(dá)式結(jié)果結(jié)果為false,執(zhí)行內(nèi)層代碼塊2,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼
如果外層布爾表達(dá)式結(jié)果為false,執(zhí)行外層代碼塊1,并退出整個(gè)選擇結(jié)構(gòu),執(zhí)行后續(xù)代碼
一個(gè)選擇結(jié)構(gòu)中,可以嵌套另一個(gè)選擇結(jié)構(gòu),只要語法都符合規(guī)范
1.4.3代碼展示
public class Demo1 {
public static void main(String[] args) {
int score = 79;
if (score > 60) {
if (score == 100) {
System.out.println("恭喜,不僅成績及格,還考了滿分哦!");
} else {
System.out.println("成績及格,還需要再接再厲哦!");
}
} else {
System.out.println("很遺憾,成績不及格");
}
System.out.println("退出程序.....");
}
}
1.4.4運(yùn)行結(jié)果
成績及格,還需要再接再厲哦!
退出程序.....
二、分支結(jié)構(gòu)
2.1分支結(jié)構(gòu)
2.1.1語法
switch(變量|表達(dá)式){
case 值1:
邏輯代碼塊1;
case 值2:
邏輯代碼塊2;
case 值3:
邏輯代碼塊3;
…
case 值n:
邏輯代碼塊n;
default:
未滿足的邏輯代碼塊;
}
2.1.2執(zhí)行流程
如果變量中的值等于值1,則執(zhí)行邏輯代碼塊1,執(zhí)行后續(xù)代碼
如果變量中的值等于值2,則執(zhí)行邏輯代碼塊2,執(zhí)行后續(xù)代碼
如果沒有匹配的case值,則執(zhí)行default中的邏輯代碼。default也可以不存在
變量類型可以是byte、short、int 、char、string,適用于等值判斷
注意:當(dāng)匹配的case執(zhí)行后,不會(huì)自動(dòng)退出整個(gè)分支結(jié)構(gòu),而是繼續(xù)向下執(zhí)行。但break關(guān)鍵字可在匹配的case執(zhí)行后,跳出整個(gè)分支結(jié)構(gòu)。
2.1.3代碼展示
public class Demo1 {
public static void main(String[] args) {
int score = 80;
switch (score) {
case 90:
System.out.println("成績優(yōu)秀");
break;
case 80:
System.out.println("成績良好");
case 60:
System.out.println("成績及格");
break;
case 59:
System.out.println("成績不及格");
default:
break;
}
}
}
2.1.4運(yùn)行結(jié)果
成績良好
成績及格
三、循環(huán)語句
通過某個(gè)條件,重復(fù)執(zhí)行一段邏輯代碼
3.1 while循環(huán)
3.1.1語法
初始化語句;
while(布爾表達(dá)式循環(huán)條件){
循環(huán)操作;
迭代部分;
}
3.1.2執(zhí)行流程
先執(zhí)行初始化語句,再對(duì)布爾表達(dá)式進(jìn)行判斷,如果為true,執(zhí)行循環(huán)操作和迭代條件;執(zhí)行結(jié)束后,再次對(duì)布爾表達(dá)式進(jìn)行判斷,如果為true,執(zhí)行循環(huán)操作和迭代條件;一直循環(huán),直到布爾表達(dá)式為false,退出循環(huán),執(zhí)行后續(xù)代碼
循環(huán)操作可能執(zhí)行次數(shù)0~n次,適合循環(huán)次數(shù)確定
3.1.3代碼展示
public class Demo1 {
public static void main(String[] args) {
/*打印數(shù)字0-9*/
int i=0;
while(i<10) {
System.out.println(i);
i++;
}
System.out.println("打印結(jié)束");
}
}
3.1.4運(yùn)行結(jié)果
0
1
2
3
4
5
6
7
8
9
打印結(jié)束
3.2do…while循環(huán)
3.2.1語法
初始化部分;
do{
循環(huán)操作;
迭代部分;
}while(布爾表達(dá)式循環(huán)條件)
3.2.2執(zhí)行流程
先執(zhí)行初始化語句,執(zhí)行循環(huán)操作和迭代條件,判斷布爾表達(dá)式,如果結(jié)果為true,再次執(zhí)行循環(huán)操作和迭代條件;執(zhí)行結(jié)束后,再次對(duì)布爾表達(dá)式進(jìn)行判斷,如果為true,執(zhí)行循環(huán)操作和迭代條件;一直循環(huán),直到布爾表達(dá)式為false,退出循環(huán),執(zhí)行后續(xù)代碼
循環(huán)操作可能執(zhí)行次數(shù)1~n次,適合循環(huán)次數(shù)不確定
3.2.3代碼展示
public class Demo1 {
public static void main(String[] args) {
/*打印數(shù)字0-9*/
int i=0;
do{
System.out.println(i);
i++;
}while(i<10);
System.out.println("打印結(jié)束");
}
}
3.2.4運(yùn)行結(jié)果
0
1
2
3
4
5
6
7
8
9
打印結(jié)束
3.3 for循環(huán)
3.3.1語法
for(初始化部分;布爾表達(dá)式循環(huán)條件;迭代部分){
循環(huán)操作;
}
3.3.2執(zhí)行流程
先執(zhí)行初始化語句,再對(duì)布爾表達(dá)式進(jìn)行判斷,如果為true,執(zhí)行循環(huán)操作和迭代條件;執(zhí)行結(jié)束后,再次對(duì)布爾表達(dá)式進(jìn)行判斷,如果為true,執(zhí)行循環(huán)操作和迭代條件;一直循環(huán),直到布爾表達(dá)式為false,退出循環(huán),執(zhí)行后續(xù)代碼
循環(huán)操作可能執(zhí)行次數(shù)0~n次,適合循環(huán)次數(shù)確定
3.3.3代碼展示
public class Demo1 {
public static void main(String[] args) {
/*打印數(shù)字0-9*/
for(int i=0;i<10;i++) {
System.out.println(i);
}
System.out.println("打印結(jié)束");
}
}
3.3.4運(yùn)行結(jié)果
0
1
2
3
4
5
6
7
8
9
打印結(jié)束
3.4 嵌套循環(huán)語句
在一個(gè)完整循環(huán)語句中可以嵌套另一個(gè)完整循環(huán)條件
3.4.1代碼展示
public class Demo1 {
// 打印九九乘法表
public static void main(String[] args) {
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+(i*j)+" ");
}
System.out.println();
}
}
}
3.4.2運(yùn)行結(jié)果
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
3.5 流程控制關(guān)鍵字 break
用于跳出switch、循環(huán)語句整個(gè)結(jié)構(gòu)
3.5.1代碼展示
public class Demo1 {
public static void main(String[] args) {
int i=0;
while(i<10) {
System.out.println(i);
i++;
if(i==5) {
break;
}
}
}
}
3.5.2運(yùn)行結(jié)果
0
1
2
3
4
continue
跳出本次循環(huán),執(zhí)行下一次循環(huán)
3.5.3代碼展示
public class Demo1 {
public static void main(String[] args) {
int i=0;
while(i<10) {
System.out.println(i);
i++;
if(i==5) {
continue;
}
}
}
}
3.5.4運(yùn)行結(jié)果
0
1
2
3
4
5
6
7
8
9
3.6 循環(huán)組成部分
1.初始部分:用以判斷的變量
2.循環(huán)條件:決定是否繼續(xù)使用循環(huán)的依據(jù)
3.循環(huán)操作:滿足循環(huán)條件后單詞執(zhí)行的邏輯代碼
4.迭代部分:控制循環(huán)條件改變的增量
到此這篇關(guān)于Java基礎(chǔ)之選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的文章就介紹到這了,更多相關(guān)java選擇與循環(huán)結(jié)構(gòu)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的使用詳解
- Java流程控制之循環(huán)結(jié)構(gòu)for,增強(qiáng)for循環(huán)
- Java流程控制之循環(huán)結(jié)構(gòu)while、do...while
- java循環(huán)結(jié)構(gòu)、數(shù)組的使用小結(jié)
- 最詳細(xì)的Java循環(huán)結(jié)構(gòu)解析之for循環(huán)教程(適合小白)
- Java代碼的三根頂梁柱:循環(huán)結(jié)構(gòu)
- 淺析JAVA 循環(huán)結(jié)構(gòu)
- Java語法基礎(chǔ)之循環(huán)結(jié)構(gòu)語句詳解
- Java基礎(chǔ)知識(shí)精通循環(huán)結(jié)構(gòu)與break及continue
相關(guān)文章
gateway網(wǎng)關(guān)與前端請(qǐng)求跨域問題的解決方案
這篇文章主要介紹了gateway網(wǎng)關(guān)與前端請(qǐng)求跨域問題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java中Date,Calendar,Timestamp的區(qū)別以及相互轉(zhuǎn)換與使用
以下是對(duì)Java中Date,Calendar,Timestamp的區(qū)別以及相互轉(zhuǎn)換與使用進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下2013-09-09
解決Spring調(diào)用Feign報(bào)錯(cuò):java.io.IOException:Incomplete output
這篇文章主要介紹了解決Spring調(diào)用Feign報(bào)錯(cuò):java.io.IOException:Incomplete output stream問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
關(guān)于Java中的dozer對(duì)象轉(zhuǎn)換問題
Dozer是Java?Bean到Java?Bean映射器,它以遞歸方式將數(shù)據(jù)從一個(gè)對(duì)象復(fù)制到另一個(gè)對(duì)象,這篇文章主要介紹了Java中的dozer對(duì)象轉(zhuǎn)換的操作方法,需要的朋友可以參考下2022-08-08
Java基本數(shù)據(jù)類型與封裝類型詳解(int和Integer區(qū)別)
這篇文章主要介紹了Java基本數(shù)據(jù)類型與封裝類型詳解(int和Integer區(qū)別) ,需要的朋友可以參考下2017-02-02
使用SpringBoot項(xiàng)目導(dǎo)入openfeign版本的問題
這篇文章主要介紹了使用SpringBoot項(xiàng)目導(dǎo)入openfeign版本的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03

