欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文詳解Java中流程控制語句

 更新時(shí)間:2022年10月08日 10:42:54   作者:共飲一杯無  
在一個(gè)程序執(zhí)行的過程中,各條語句的執(zhí)行順序?qū)Τ绦虻慕Y(jié)果是有直接影響的。也就是說,程序的流程對運(yùn)行結(jié)果有直接的影響。所以,我們必須清楚每條語句的執(zhí)行流程。本文就來通過一些示例帶大家詳細(xì)了解一下

概述

在一個(gè)程序執(zhí)行的過程中,各條語句的執(zhí)行順序?qū)Τ绦虻慕Y(jié)果是有直接影響的。也就是說,程序的流程對運(yùn)行結(jié)果有直接的影響。所以,我們必須清楚每條語句的執(zhí)行流程。而且,很多時(shí)候我們要通過控制語句的執(zhí)行順序來實(shí)現(xiàn)我們要完成的功能。

判斷語句

if

格式:

if (關(guān)系表達(dá)式){ 語句體; }

執(zhí)行流程:

  • 首先判斷關(guān)系表達(dá)式看其結(jié)果是true還是false
  • 如果是true就執(zhí)行語句體
  • 如果是false就不執(zhí)行語句體

if...else

格式:

if(關(guān)系表達(dá)式) { 語句體1; }else { 語句體2; }

執(zhí)行流程:

  • 首先判斷關(guān)系表達(dá)式看其結(jié)果是true還是false
  • 如果是true就執(zhí)行語句體1
  • 如果是false就執(zhí)行語句體2
public static void main(String[] args){
    // 判斷給定的數(shù)據(jù)是奇數(shù)還是偶數(shù)
    // 定義變量
    int a = 1;
    if(a % 2 == 0) {
        System.out.println("a是偶數(shù)");
    } else{
        System.out.println("a是奇數(shù)");
    }
    System.out.println("結(jié)束");
}

if..else if...else

格式:

if (判斷條件1) { 執(zhí)行語句1; } else if (判斷條件2) { 執(zhí)行語句2; } ... }else if (判斷條件n) { 執(zhí)行語句n; } else { 執(zhí)行語句n+1; }

執(zhí)行流程:

  • 首先判斷關(guān)系表達(dá)式1看其結(jié)果是true還是false
  • 如果是true就執(zhí)行語句體1
  • 如果是false就繼續(xù)判斷關(guān)系表達(dá)式2看其結(jié)果是true還是false
  • 如果是true就執(zhí)行語句體2
  • 如果是false就繼續(xù)判斷關(guān)系表達(dá)式…看其結(jié)果是true還是false
  • 如果沒有任何關(guān)系表達(dá)式為true,就執(zhí)行語句體n+1。

案例:

public static void main(String[] args) {
    // x和y的關(guān)系滿足如下:
    // x>=3 y = 2x + 1;
    //‐1<=x<3 y = 2x;
    // x<=‐1 y = 2x – 1;
    // 根據(jù)給定的x的值,計(jì)算出y的值并輸出。
    // 定義變量
    int x = 5;
    int y;
    if (x>= 3) {
        y = 2 * x + 1;
    } else if (x >= ‐1 && x < 3) {
        y = 2 * x;
    } else {
        y = 2 * x ‐ 1;
    }
    System.out.println("y的值是:"+y);
}

if語句和三元運(yùn)算符的互換

在某些簡單的應(yīng)用中,if語句是可以和三元運(yùn)算符互換使用的。

public static void main(String[] args) {
    int a = 10;
    int b = 20;
    //定義變量,保存a和b的較大值
    int c;
    if(a > b) {
        c = a;
    } else {
        c = b;
    }
    //可以上述功能改寫為三元運(yùn)算符形式
    c = a > b ? a:b;
}

選擇語句

switch

格式:

switch(表達(dá)式) { case 常量值1: 語句體1; break; case 常量值2: 語句體2; break; ... default: 語句體n+1; break; }

執(zhí)行流程:

  • 首先計(jì)算出表達(dá)式的值
  • 其次,和case依次比較,一旦有對應(yīng)的值,就會執(zhí)行相應(yīng)的語句,在執(zhí)行的過程中,遇到break就會結(jié)束。
  • 最后,如果所有的case都和表達(dá)式的值不匹配,就會執(zhí)行default語句體部分,然后程序結(jié)束掉。
public static void main(String[] args) {
    //定義變量,判斷是星期幾
    int weekday = 6;
    //switch語句實(shí)現(xiàn)選擇
    switch(weekday) {
        case 1:
            System.out.println("星期一");
            break;
        case 2:
            System.out.println("星期二");
            break;
        case 3:
            System.out.println("星期三");
            break;
        case 4:
            System.out.println("星期四");
            break;
        case 5:
            System.out.println("星期五");
            break;
        case 6:
            System.out.println("星期六");
            break;
        case 7:
            System.out.println("星期日");
            break;
        default:
            System.out.println("你輸入的數(shù)字有誤");
            break;
    }
}

switch語句中,表達(dá)式的數(shù)據(jù)類型,可以是byte,short,int,char,enum(枚舉),JDK7后可以接收字符串。

case的穿透性

在switch語句中,如果case的后面不寫break,將出現(xiàn)穿透現(xiàn)象,也就是不會在判斷下一個(gè)case的值,直接向后運(yùn) 行,直到遇到break,或者整體switch結(jié)束。

public static void main(String[] args) {
    int i = 5;
    switch (i){
        case 0:
            System.out.println("執(zhí)行case0");
            break;
        case 5:
            System.out.println("執(zhí)行case5");
        case 10:
            System.out.println("執(zhí)行case10");
        default:
            System.out.println("執(zhí)行default");
    }
}

上述程序中,執(zhí)行case5后,由于沒有break語句,程序會一直向后走,不會在判斷case,也不會理會break,直接運(yùn)行完整體switch。 由于case存在穿透性,因此初學(xué)者在編寫switch語句時(shí),必須要寫上break。

循環(huán)語句

循環(huán)語句可以在滿足循環(huán)條件的情況下,反復(fù)執(zhí)行某一段代碼,這段被重復(fù)執(zhí)行的代碼被稱為循環(huán)體語句,當(dāng)反復(fù)執(zhí)行這個(gè)循環(huán)體時(shí),需要在合適的時(shí)候把循環(huán)判斷條件修改為false,從而結(jié)束循環(huán),否則循環(huán)將一直執(zhí)行下去,形成死循環(huán)。

for

格式:

for(初始化表達(dá)式①; 布爾表達(dá)式②; 步進(jìn)表達(dá)式④){ 循環(huán)體③ }

執(zhí)行流程: 執(zhí)行順序:①②③④>②③④>②③④…②不滿足為止。 ①負(fù)責(zé)完成循環(huán)變量初始化 ②負(fù)責(zé)判斷是否滿足循環(huán)條件,不滿足則跳出循環(huán) ③具體執(zhí)行的語句 ④循環(huán)后,循環(huán)條件所涉及變量的變化情況

while

格式:

初始化表達(dá)式① while(布爾表達(dá)式②){ 循環(huán)體③ 步進(jìn)表達(dá)式④ }

執(zhí)行流程: 執(zhí)行順序:①②③④>②③④>②③④…②不滿足為止。 ①負(fù)責(zé)完成循環(huán)變量初始化。 ②負(fù)責(zé)判斷是否滿足循環(huán)條件,不滿足則跳出循環(huán)。 ③具體執(zhí)行的語句。 ④循環(huán)后,循環(huán)變量的變化情況。 while循環(huán)輸出10次HelloWorld:

public static void main(String[] args) {
    //while循環(huán)實(shí)現(xiàn)打印10次HelloWorld
    //定義初始化變量
    int i = 1;
    //循環(huán)條件<=10
    while(i<=10){
        System.out.println("HelloWorld");
        //步進(jìn)
        i++;
    }
}

do...while

格式:

初始化表達(dá)式① do{ 循環(huán)體③ 步進(jìn)表達(dá)式④ }while(布爾表達(dá)式②);

執(zhí)行流程: 執(zhí)行順序:①③④>②③④>②③④…②不滿足為止。 ①負(fù)責(zé)完成循環(huán)變量初始化。 ②負(fù)責(zé)判斷是否滿足循環(huán)條件,不滿足則跳出循環(huán)。 ③具體執(zhí)行的語句 ④循環(huán)后,循環(huán)變量的變化情況 輸出10次HelloWorld:

public static void main(String[] args) {
    int x=1;
    do {
        System.out.println("HelloWorld");
        x++;
    }while(x<=10);
}

do...while循環(huán)的特點(diǎn):無條件執(zhí)行一次循環(huán)體,即使我們將循環(huán)條件直接寫成false,也依然會循環(huán)一次。這樣的 循環(huán)具有一定的風(fēng)險(xiǎn)性,因此初學(xué)者不建議使用do...while循環(huán)。

public static void main(String[] args){
    do{
        System.out.println("無條件執(zhí)行一次");
    }while(false);
}

for 和 while 的小區(qū)別

  • 控制條件語句所控制的那個(gè)變量,在for循環(huán)結(jié)束后,就不能再被訪問到了,而while循環(huán)結(jié)束還可以繼續(xù)使用,如果你想繼續(xù)使用,就用while,否則推薦使用for。原因是for循環(huán)結(jié)束,該變量就從內(nèi)存中消失,能夠提高內(nèi)存的使用效率。
  • 在已知循環(huán)次數(shù)的時(shí)候使用推薦使用for,循環(huán)次數(shù)未知的時(shí)推薦使用while。

跳出語句

break

使用場景:終止switch或者循環(huán)

  • 在選擇結(jié)構(gòu)switch語句中
  • 在循環(huán)語句中
  • 離開使用場景的存在是沒有意義的
public static void main(String[] args) {
    for (int i = 1; i<=10; i++) {
        //需求:打印完兩次HelloWorld之后結(jié)束循環(huán)
        if(i == 3){
        break;
        }
        System.out.println("HelloWorld"+i);
    }
}

continue

使用場景:結(jié)束本次循環(huán),繼續(xù)下一次的循環(huán)

public static void main(String[] args) {
    for (int i = 1; i <= 10; i++) {
        //需求:不打印第三次HelloWorld
        if(i == 3){
            continue;
        }
        System.out.println("HelloWorld"+i);
    }
}

死循環(huán)

死循環(huán):也就是循環(huán)中的條件永遠(yuǎn)為true,死循環(huán)的是永不結(jié)束的循環(huán)。例如:while(true){}。

嵌套循環(huán)

所謂嵌套循環(huán),是指一個(gè)循環(huán)的循環(huán)體是另一個(gè)循環(huán)。比如for循環(huán)里面還有一個(gè)for循環(huán),就是嵌套循環(huán)???共的循環(huán)次數(shù)=外循環(huán)次數(shù)*內(nèi)循環(huán)次數(shù) 嵌套循環(huán)格式

for(初始化表達(dá)式①; 循環(huán)條件②; 步進(jìn)表達(dá)式⑦) { for(初始化表達(dá)式③; 循環(huán)條件④; 步進(jìn)表達(dá)式⑥) { 執(zhí)行語句⑤; } }

嵌套循環(huán)執(zhí)行流程: 執(zhí)行順序:①②③④⑤⑥>④⑤⑥>⑦②③④⑤⑥>④⑤⑥ 外循環(huán)一次,內(nèi)循環(huán)多次。 比如跳繩:一共跳5組,每組跳10個(gè)。5組就是外循環(huán),10個(gè)就是內(nèi)循環(huán)。

到此這篇關(guān)于一文詳解Java中流程控制語句的文章就介紹到這了,更多相關(guān)Java流程控制語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于@Autowierd && @Resource 你真的了解嗎

    關(guān)于@Autowierd && @Resource 你真的了解嗎

    這篇文章主要介紹了關(guān)于@Autowierd && @Resource的具體使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java回調(diào)函數(shù)與觀察者模式實(shí)例代碼

    Java回調(diào)函數(shù)與觀察者模式實(shí)例代碼

    這篇文章主要介紹了Java回調(diào)函數(shù)與觀察者模式實(shí)例代碼,簡單介紹了使用觀察者模式的場景,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 詳解path和classpath的區(qū)別

    詳解path和classpath的區(qū)別

    這篇文章主要介紹了詳解path和classpath的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • java servlet手機(jī)app訪問接口(二)短信驗(yàn)證

    java servlet手機(jī)app訪問接口(二)短信驗(yàn)證

    這篇文章主要介紹了java servlet手機(jī)app訪問接口(二),短信驗(yàn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Lombok之@AllArgsConstructor的使用方式

    Lombok之@AllArgsConstructor的使用方式

    這篇文章主要介紹了Lombok之@AllArgsConstructor的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Junit單元測試框架架包的導(dǎo)入全過程

    Junit單元測試框架架包的導(dǎo)入全過程

    這篇文章主要介紹了Junit單元測試框架架包的導(dǎo)入全過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • springcloud配置ssh的問題及解決方法

    springcloud配置ssh的問題及解決方法

    這篇文章主要介紹了springcloud配置ssh,本文給大家介紹在配置過程中遇到的問題及解決方法,通過結(jié)合實(shí)例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Springboot集成JUnit5優(yōu)雅進(jìn)行單元測試的示例

    Springboot集成JUnit5優(yōu)雅進(jìn)行單元測試的示例

    這篇文章主要介紹了Springboot集成JUnit5優(yōu)雅進(jìn)行單元測試的示例,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-10-10
  • Java使用JaCoCo進(jìn)行代碼覆蓋率分析的操作指南

    Java使用JaCoCo進(jìn)行代碼覆蓋率分析的操作指南

    JaCoCo是一個(gè)開源的 Java 代碼覆蓋率工具,廣泛應(yīng)用于測試過程中,它可以幫助開發(fā)者分析測試代碼的覆蓋情況,在本文中,我們將介紹 JaCoCo 的基本功能、如何集成到 Maven 項(xiàng)目中,以及通過具體案例展示如何生成覆蓋率報(bào)告,需要的朋友可以參考下
    2025-02-02
  • 通過Java連接SQL?Server數(shù)據(jù)庫的超詳細(xì)操作流程

    通過Java連接SQL?Server數(shù)據(jù)庫的超詳細(xì)操作流程

    java相對于其他語言(例如c,c++等)連接數(shù)據(jù)庫要方便得多,那么如何連接呢?下面這篇文章主要給大家介紹了關(guān)于通過Java連接SQL?Server數(shù)據(jù)庫的超詳細(xì)操作流程,需要的朋友可以參考下
    2023-03-03

最新評論