最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java程序控制邏輯—流程控制

 更新時(shí)間:2022年01月18日 08:40:34   作者:碼農(nóng)洞見(jiàn)?  
這篇文章主要介紹了Java程序的控制邏輯流程控制,流程控制中最基本的就是條件執(zhí)行,也就是說(shuō),一些操作只能在某些條件滿(mǎn)足的情況下才執(zhí)行,在一些條件下執(zhí)行某種操作,在另外一些條件下執(zhí)行另外的操作,需要的朋友可以參考一下

1 前言

任何一門(mén)語(yǔ)言都需要基本的流程控制語(yǔ)句,其思想也符合人類(lèi)判斷問(wèn)題或做事的邏輯過(guò)程。什么是流程控制呢?流程就是做一件事情的順序,或者說(shuō)是次序。在程序設(shè)計(jì)中,流程就是要完成一個(gè)功能,而流程控制則是指如何在程序設(shè)計(jì)中控制完成某種功能的次序。本章將介紹Java語(yǔ)言中關(guān)于“流程控制”的使用方法。

2 條件語(yǔ)句

流程控制中最基本的就是條件執(zhí)行,也就是說(shuō),一些操作只能在某些條件滿(mǎn)足的情況下才執(zhí)行,在一些條件下執(zhí)行某種操作,在另外一些條件下執(zhí)行另外的操作。Java分支語(yǔ)句主要分為下述兩種。

2.1 if

條件語(yǔ)句是一個(gè)重要的編程語(yǔ)句,用于告訴程序在某個(gè)條件成立的情況下執(zhí)行某段語(yǔ)句,而在另一種情況下執(zhí)行另外的語(yǔ)句。
使用if條件語(yǔ)句,可選擇是否要執(zhí)行緊跟在條件之后的那個(gè)語(yǔ)句。關(guān)鍵字if之后是作為條件的“布爾表達(dá)式”。如果該表達(dá)式返回的結(jié)果為true,則執(zhí)行其后的語(yǔ)句;如果為false,則不執(zhí)行if條件之后的語(yǔ)句。if條件語(yǔ)句可分為簡(jiǎn)單的if條件語(yǔ)句、if…else語(yǔ)句和if…else if多分支語(yǔ)句。

語(yǔ)法1:

if(條件判斷表達(dá)式){
    語(yǔ)句1
}

說(shuō)明:在if后面的條件語(yǔ)句中,必須是一個(gè)可以轉(zhuǎn)換成boolean型的表達(dá)式,這個(gè)表達(dá)式需要用括號(hào)括起來(lái)。當(dāng)表達(dá)式的值為true時(shí)執(zhí)行語(yǔ)句1。

語(yǔ)法2:

if(條件判斷表達(dá)式){
    語(yǔ)句1
}
else{
    語(yǔ)句2
}

說(shuō)明:表達(dá)式為true時(shí)執(zhí)行語(yǔ)句1,表達(dá)式為false時(shí)執(zhí)行語(yǔ)句2

語(yǔ)法3:

if(條件判斷表達(dá)式1){
?? ?語(yǔ)句1
}
else if(條件判斷表達(dá)式2){
?? ?語(yǔ)句2
}
else if(條件判斷表達(dá)式3){
?? ?語(yǔ)句3
}
...
else if(條件判斷表達(dá)式n)
{
?? ?語(yǔ)句N(xiāo)
}
else{
?? ?語(yǔ)句N(xiāo)
}

說(shuō)明:表達(dá)式1為true時(shí)執(zhí)行語(yǔ)句1,表達(dá)式1為false時(shí)判斷表達(dá)式2,表達(dá)式2為true時(shí)執(zhí)行語(yǔ)句2,表達(dá)式2為false時(shí)判斷表達(dá)式3,如此直至表達(dá)式n為false,則執(zhí)行最后一個(gè)else后的語(yǔ)句n。

2.2 switch

在進(jìn)行多重選擇的時(shí)候,過(guò)多if-else-if條件選擇語(yǔ)句的嵌套會(huì)造成程序維護(hù)上的困擾。在Java語(yǔ)言中提供了switch條件選擇語(yǔ)句,使用它可以讓程序更加簡(jiǎn)潔清楚。與if條件選擇語(yǔ)句不同的是,switch只有一個(gè)條件判斷表達(dá)式。switch是一種多選一的條件選擇語(yǔ)句,它是按照條件判斷表達(dá)式的運(yùn)算結(jié)果來(lái)決定在多個(gè)程序分支中選擇其中之一的程序分支,并執(zhí)行這個(gè)程序分支內(nèi)的程序代碼。

switch條件選擇語(yǔ)句的語(yǔ)法如下:

switch (表達(dá)式) {
? ? case 數(shù)值1:語(yǔ)句1;break;
? ? case 數(shù)值2:語(yǔ)句2;break;
? ? case 數(shù)值3:語(yǔ)句3;break; ? ?
? ? ...
? ? default:語(yǔ)句0;
}

說(shuō)明:switch的表達(dá)式類(lèi)型為整型(包括byte、short、char、int等)、字符類(lèi)型及枚舉類(lèi)。switch語(yǔ)句將從與選項(xiàng)值相匹配的case標(biāo)簽處開(kāi)始執(zhí)行直到遇到break語(yǔ)句,或者執(zhí)行到switch語(yǔ)句的結(jié)束處為止。如果沒(méi)有相匹配的case標(biāo)簽,而有default子句,就執(zhí)行這個(gè)子句。

3 循環(huán)語(yǔ)句

所謂循環(huán),就是多次重復(fù)執(zhí)行某些類(lèi)似的操作,這個(gè)操作一般不是完全一樣的操作,而是類(lèi)似的操作。循環(huán)語(yǔ)句是程序開(kāi)發(fā)非常重要,也是使用頻率很高的一個(gè)技能點(diǎn)。在Java中,循環(huán)有4種形式,分別是while、do/whileforforeach。

3.1 while

while 循環(huán)的形式是:

while(布爾表達(dá)式) {
?? ?語(yǔ)句塊; //可以是單條語(yǔ)句, 也可以是復(fù)合語(yǔ)句
}

執(zhí)行語(yǔ)句會(huì)在每一次循環(huán)前,判斷布爾表達(dá)式返回值是否為 true

3.2 do-while

do-while循環(huán)語(yǔ)句的一般格式如下:

do{
語(yǔ)句塊;
} while(布爾表達(dá)式);

do…while語(yǔ)句與while語(yǔ)句不同的是,它先執(zhí)行大括號(hào)內(nèi)的循環(huán)體,再判斷條件,如果條件不滿(mǎn)足,下次不再執(zhí)行循環(huán)體。也就是說(shuō),在判斷條件之前,就已經(jīng)執(zhí)行大括號(hào)內(nèi)的循環(huán)體。

3.3 for

for 循環(huán)可能是最常用的迭代形式。 該循環(huán)在第一次迭代之前執(zhí)行初始化。隨后,它會(huì)執(zhí)行布爾表達(dá)式,并在每次迭代結(jié)束時(shí),進(jìn)行某種形式的步進(jìn)。for 循環(huán)的形式是:

for(初始化表達(dá)式;循環(huán)條件;迭代語(yǔ)句) {
? ?循環(huán)體;
}

初始化語(yǔ)句是循環(huán)的初始狀態(tài),循環(huán)條件是條件判斷的布爾表達(dá)式,如果表達(dá)式的值為true,則執(zhí)行后面的語(yǔ)句,接下來(lái)執(zhí)行后面的迭代語(yǔ)句。如果條件判斷表達(dá)式第一次求值就為false,那么for循環(huán)不會(huì)進(jìn)行任何的迭代,后面的循環(huán)體和迭代語(yǔ)句也不會(huì)執(zhí)行任何操作。
一次循環(huán)結(jié)束后,下一次循環(huán)開(kāi)始前,執(zhí)行迭代部分的語(yǔ)句,然后判斷循環(huán)條件表達(dá)式的值,決定是否進(jìn)行下一次循環(huán)。

3.4 for-in

Java 5 引入了更為簡(jiǎn)潔的“增強(qiáng)版 for 循環(huán)”語(yǔ)法來(lái)操縱數(shù)組和集合。for-in 語(yǔ)法可以節(jié)省我們編寫(xiě)代碼的時(shí)間。 更重要的是,它提高了代碼可讀性以及更好地描述代碼意圖而不是詳細(xì)說(shuō)明這操作細(xì)節(jié)。

for-in的語(yǔ)句格式如下:

for(元素類(lèi)型 元素變量 : 遍歷對(duì)象){  ?
?? ?循環(huán)體;
}

大部分文檔也稱(chēng)其為for-each 語(yǔ)法,但因?yàn)榱瞬慌c Java 8 新添的 forEach() 產(chǎn)生混淆,因此我稱(chēng)之為 for-in 循環(huán)。

4 循環(huán)控制

在任何迭代語(yǔ)句的主體內(nèi),都可以使用 break continue 來(lái)控制循環(huán)的流程。 其中,break 表示跳出當(dāng)前循環(huán)體。而 continue 表示停止本次循環(huán),開(kāi)始下一次循環(huán)。

4.1 break

break語(yǔ)句通常用在循環(huán)語(yǔ)句和開(kāi)關(guān)語(yǔ)句中,例如用在開(kāi)關(guān)語(yǔ)句switch中,break語(yǔ)句可以使程序跳出switch而執(zhí)行switch以后的語(yǔ)句,以防止程序進(jìn)入死循環(huán)而無(wú)法退出。當(dāng)break語(yǔ)句用于do…while、for、while循環(huán)語(yǔ)句中時(shí),可使程序終止循環(huán)。

4.2 continue

continue語(yǔ)句用來(lái)略過(guò)循環(huán)中剩下的語(yǔ)句,停止當(dāng)前迭代,重新開(kāi)始新的循環(huán),這和break語(yǔ)句的完全跳出循環(huán)是不一樣的。continue僅僅出現(xiàn)在while、do…while、for語(yǔ)句的子語(yǔ)句塊中。也可以使用標(biāo)簽來(lái)選擇需要終止的嵌套循環(huán)的層級(jí)。

5 碼農(nóng)洞見(jiàn)

5.1 GOTO語(yǔ)句有害論

程序之所以能夠按照人們的意愿執(zhí)行,主要依靠的是程序的控制結(jié)構(gòu)。早期的程序員廣泛使用GOTO語(yǔ)句,它破壞了程序設(shè)計(jì)結(jié)構(gòu)性,導(dǎo)致程序流程的混亂,使理解和調(diào)試程序都產(chǎn)生困難。1968年Dijkstra等人發(fā)表了著名的論文《GOTO語(yǔ)句有害論》,即“所有有意義的程序流程都可以使用三種基本的結(jié)構(gòu)來(lái)構(gòu)成”。自此人們的編程方式發(fā)生重大變化正是這個(gè)原因,在Java程序設(shè)計(jì)中,雖然goto作為關(guān)鍵字保留了下來(lái),但是一直沒(méi)有啟用。

5.2 結(jié)構(gòu)化程序設(shè)計(jì)

結(jié)構(gòu)化程序設(shè)計(jì)(Structured programming)是一種經(jīng)典的編程模式,它強(qiáng)調(diào)用模塊化、積木式的方法來(lái)建立程序。采用結(jié)構(gòu)化程序設(shè)計(jì)方法,可使程序的邏輯結(jié)構(gòu)清晰、層次分明、可讀性好、可靠性強(qiáng),從而提高了程序的開(kāi)發(fā)效率,保證了程序質(zhì)量,改善了程序的可靠性。
一般來(lái)說(shuō)程序的結(jié)構(gòu)包含以下3種。
(1)順序結(jié)構(gòu)。
(2)選擇結(jié)構(gòu)。
(3)循環(huán)結(jié)構(gòu)。
這3種不同的結(jié)構(gòu)有一個(gè)共同點(diǎn),就是它們都只有一個(gè)入口,也只有一個(gè)運(yùn)行出口。這些單一的入口、出口可讓程序可控、易讀、好維護(hù)。

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

相關(guān)文章

  • Springboot 啟動(dòng)之后初始化資源的幾種方法

    Springboot 啟動(dòng)之后初始化資源的幾種方法

    在我們實(shí)際工作中,總會(huì)遇到這樣需求,在項(xiàng)目啟動(dòng)的時(shí)候需要做一些初始化的操作,比如初始化線(xiàn)程池,提前加載好加密證書(shū)等,本文主要介紹了Springboot 啟動(dòng)之后初始化資源的幾種方法,感興趣的可以了解一下
    2024-01-01
  • Springboot 整合 Java DL4J 實(shí)現(xiàn)農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)(推薦)

    Springboot 整合 Java DL4J 實(shí)現(xiàn)農(nóng)產(chǎn)品質(zhì)量檢測(cè)系統(tǒng)(推薦)

    本文詳細(xì)介紹了系統(tǒng)的搭建過(guò)程,包括技術(shù)選型、數(shù)據(jù)處理、模型訓(xùn)練和評(píng)估等關(guān)鍵步驟,系統(tǒng)采用卷積神經(jīng)網(wǎng)絡(luò),對(duì)水果成熟度和缺陷進(jìn)行識(shí)別,有效解決了傳統(tǒng)方法成本高、效率低的問(wèn)題,有助于提升農(nóng)產(chǎn)品檢測(cè)的科技含量和自動(dòng)化水平
    2024-10-10
  • Spring Boot集成Spring Cloud Eureka進(jìn)行服務(wù)治理的方法

    Spring Boot集成Spring Cloud Eureka進(jìn)行服務(wù)治理的方法

    本文通過(guò)詳細(xì)的步驟和代碼示例,介紹了如何在Spring Boot中集成Spring Cloud Eureka進(jìn)行服務(wù)治理,通過(guò)這種方式,可以有效地管理和維護(hù)微服務(wù)架構(gòu)中的服務(wù),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 手動(dòng)構(gòu)建springBoot啟動(dòng)器過(guò)程圖解

    手動(dòng)構(gòu)建springBoot啟動(dòng)器過(guò)程圖解

    這篇文章主要介紹了手動(dòng)構(gòu)建springBoot啟動(dòng)器過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Springboot集成Tika實(shí)現(xiàn)文檔解析

    Springboot集成Tika實(shí)現(xiàn)文檔解析

    Tika是一款A(yù)pache開(kāi)源的,跨平臺(tái),支持多品種文本類(lèi)型的內(nèi)容檢測(cè)和提取工具,本文將介紹Springboot如何集成Tika實(shí)現(xiàn)文檔解析,需要的可以參考下
    2024-11-11
  • Java 后端接收Request請(qǐng)求參數(shù)的多種方式匯總

    Java 后端接收Request請(qǐng)求參數(shù)的多種方式匯總

    本文給大家總結(jié)了后端接收Request請(qǐng)求參數(shù)的7種方式,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-10-10
  • Spring中@Autowired @Resource @Inject三個(gè)注解有什么區(qū)別

    Spring中@Autowired @Resource @Inject三個(gè)注解有什么區(qū)別

    在我們使用Spring框架進(jìn)行日常開(kāi)發(fā)過(guò)程中,經(jīng)常會(huì)使用@Autowired, @Resource, @Inject注解來(lái)進(jìn)行依賴(lài)注入,下面來(lái)介紹一下這三個(gè)注解有什么區(qū)別
    2023-03-03
  • Java多線(xiàn)程之深入理解ReentrantLock

    Java多線(xiàn)程之深入理解ReentrantLock

    這篇文章主要介紹了Java多線(xiàn)程之深入理解ReentrantLock,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 淺析Java中print、printf、println的區(qū)別

    淺析Java中print、printf、println的區(qū)別

    以下是對(duì)Java中print、printf、println的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08
  • Spring?Boot?調(diào)用外部接口的幾種方式

    Spring?Boot?調(diào)用外部接口的幾種方式

    在微服務(wù)架構(gòu)中,服務(wù)間的調(diào)用是不可或缺的環(huán)節(jié),本文主要介紹了Spring?Boot調(diào)用外部接口的幾種方式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05

最新評(píng)論

长岛县| 水富县| 岳阳市| 华阴市| 四平市| 津南区| 布尔津县| 合阳县| 潼南县| 青川县| 万山特区| 乌苏市| 军事| 达孜县| 龙里县| 望江县| 东乌珠穆沁旗| 嘉兴市| 和顺县| 娱乐| 南丹县| 南京市| 永寿县| 乐山市| 临猗县| 盐津县| 太和县| 固原市| 遂宁市| 珲春市| 周至县| 太康县| 天祝| 防城港市| 凌源市| 平江县| 民勤县| 祁东县| 日土县| 宝清县| 上饶市|