詳解Java中的三種流程控制語句
順序語句
順序顧名思義就是程序自上而下執(zhí)行
public class User { public static void main(String[] args) { String name = "hacker"; int age = 18; String happy = "學(xué)習(xí)Java"; System.out.println("姓名:"+name); System.out.println("年齡:"+age); System.out.println("愛好:"+happy); } }
運行結(jié)果如下:
選擇語句
if else
if (表達(dá)式){
語句塊1
}
else{
語句塊2
}
先判斷表達(dá)式,當(dāng)表達(dá)式的值為true時,執(zhí)行語句塊1,否則,執(zhí)行語句塊2
舉個栗子
從控制臺輸入成績,如果成績大于或等于60,輸出成績及格,否則輸出成績不及格
import java.util.Scanner; public class User { public static void main(String[] args) { var sc = new Scanner(System.in); System.out.print("請輸入成績:"); float score = sc.nextFloat(); if(score>=60){//如果成績>=60,成績及格 System.out.printf("成績及格:%3.1f", score); } else {//否則成績不及格 System.out.printf("成績不及格:%3.1f", score); } } }
運行結(jié)果如下:
if else的嵌套
需要對多個條件進(jìn)行判斷就需要用到if else的嵌套
基本格式如下:
if (表達(dá)式1){
語句塊1
}else if(表達(dá)式2){
語句塊2
}
else{
語句塊3
}
先判斷表達(dá)式1,當(dāng)表達(dá)式1成立執(zhí)行語句塊1,不成立判斷表達(dá)式2,若表達(dá)式2成立執(zhí)行語句塊2,不成立執(zhí)行語句塊3
舉個栗子
從控制臺輸入成績,成績小于60時成績不及格,當(dāng)成績在60~90之間時成績及格,當(dāng)成績大于90時成績優(yōu)秀
import java.util.Scanner; public class User { public static void main(String[] args) { var sc = new Scanner(System.in);// System.out.print("請輸入成績:"); float score = sc.nextFloat(); if(score<60){//如果成績<60,成績不及格 System.out.printf("成績不及格:%3.1f", score); }else if(score>=60&&score<90){//如果60<=score<90,成績及格 System.out.printf("成績及格:%3.1f", score); } else {//否則成績優(yōu)秀 System.out.printf("成績優(yōu)秀:%3.1f", score); } } }
運行結(jié)果如下:
switch case default
先判斷switch后面括號里表達(dá)式的值,然后拿著值去匹配case語句,若匹配到了執(zhí)行case語句對應(yīng)的語句塊。執(zhí)行后若遇到break則退出switch語句,如果沒有break則繼續(xù)執(zhí)行下面的case語句塊,直到遇到break退出switch語句
switch(表達(dá)式)
{
case 值1:語句塊1:break;
case 值2:語句塊2:break;
case 值3:語句塊3:break;
default:語句塊4
import java.util.Scanner; public class User { public static void main(String[] args) { var sc = new Scanner(System.in); System.out.print("輸入1,2,3中其一數(shù)字:"); int number = sc.nextInt(); switch(number) { case 1: System.out.print("hello"); break; case 2: System.out.print("Java"); break; case 3: System.out.print("world"); default: System.out.print("輸入有誤,請重新輸入"); } } }
運行結(jié)果如下:
循環(huán)語句
for
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
{循環(huán)體}
表達(dá)式1的值給循環(huán)變量賦初始值;表達(dá)式2是判斷條件,表達(dá)式3是改變循環(huán)變量的值
執(zhí)行過程如下:
先計算表達(dá)式1的值,再計算表達(dá)式2的值。若為真執(zhí)行循環(huán)體,若為假,直接跳出循環(huán),然后計算表達(dá)式3的值;再次計算表達(dá)式2的值,若為真,再執(zhí)行循環(huán)體,再計算表達(dá)式3的值,直到表達(dá)式2的值為假,循環(huán)結(jié)束,執(zhí)行循環(huán)下面的語句
舉個栗子
循環(huán)打印出1到10
public class User { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { System.out.println(i); } } }
運行結(jié)果如下:
for in
從數(shù)組中挨個取值
public class User { public static void main(String[] args) { int[] a = {1, 2, 3, 4, 5, 6}; for (int i : a) { System.out.println(i); } } }
運行結(jié)果如下:
while
while(表達(dá)式){
循環(huán)體
}
public class User { public static void main(String[] args) { int i = 0; while (i < 10) { i++; System.out.println(i); } } }
運行結(jié)果如下:
do while
do while和while的區(qū)別
do while會先執(zhí)行循環(huán)體再判斷條件,while先判斷條件再執(zhí)行循環(huán)體
do while最少執(zhí)行一次,while可以一次都不執(zhí)行
do{循環(huán)體} while(表達(dá)式)
public class User { public static void main(String[] args) { int i = 0; do {//先執(zhí)行循環(huán)體,即使i++不滿足條件也會執(zhí)行 i++; System.out.print(i); } while (i < 0); } }
運行結(jié)果如下:
break continue
break 終止循環(huán)
continue 跳出當(dāng)前循環(huán),進(jìn)入下一次循環(huán)
public class User { public static void main(String[] args) { for (int i = 0;i <= 10;i++){ if( i == 2){ break; //break當(dāng)i=2時直接終止循環(huán) } System.out.println(i); } } }
當(dāng)循環(huán)到i=2時遇到break直接終止循環(huán),不繼續(xù)執(zhí)行
運行結(jié)果如下:
0
1
public class User { public static void main(String[] args) { for (int i = 0;i <= 10;i++){ if( i == 2){ continue; //continue當(dāng)i=2時跳出本次循環(huán),進(jìn)入下一次循環(huán)(不打印2) } System.out.println(i); } } }
當(dāng)循環(huán)到i=2時遇到continue跳過本次循環(huán)繼續(xù)下一輪循環(huán)(i=2不執(zhí)行)
繼續(xù)執(zhí)行下面的循環(huán)直到for語句條件不滿足終止循環(huán)
運行結(jié)果如下:
0
1
3
4
5
6
7
8
9
10
到此這篇關(guān)于詳解Java中的三種流程控制語句的文章就介紹到這了,更多相關(guān)Java流程控制語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot2.0整合jackson配置日期格式化和反序列化的實現(xiàn)
這篇文章主要介紹了SpringBoot2.0整合jackson配置日期格式化和反序列化的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11Java對世界不同時區(qū)timezone之間時間轉(zhuǎn)換的處理方法
這篇文章主要介紹了Java對世界不同時區(qū)timezone之間時間轉(zhuǎn)換的處理方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07利用Jmeter發(fā)送Java請求的實戰(zhàn)記錄
JMeter是Apache組織的開放源代碼項目,它是功能和性能測試的工具,100%的用java實現(xiàn),下面這篇文章主要給大家介紹了關(guān)于如何利用Jmeter發(fā)送Java請求的相關(guān)資料,需要的朋友可以參考下2021-09-09在Spring Boot中淺嘗內(nèi)存泄漏的實戰(zhàn)記錄
本文給大家分享在Spring Boot中淺嘗內(nèi)存泄漏的實戰(zhàn)記錄,結(jié)合實例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-04-04springboot yml中profiles的巧妙用法(小白必看多環(huán)境配置)
這篇文章主要介紹了springboot yml中profiles的巧妙用法,非常適合多環(huán)境配置場景,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04java 使用DecimalFormat進(jìn)行數(shù)字的格式化實例詳解
這篇文章主要介紹了java 使用DecimalFormat進(jìn)行數(shù)字的格式化實例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06