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