Java常用流程控制語(yǔ)句實(shí)現(xiàn)原理解析
一、判斷語(yǔ)句
最常用的順序結(jié)構(gòu)只能順序執(zhí)行,并不能進(jìn)行判斷和選擇。于是便有了下面兩種分支結(jié)構(gòu)
if語(yǔ)句 switch語(yǔ)句1. if語(yǔ)句
一個(gè)if語(yǔ)句包含一個(gè)布爾表達(dá)式和一條或多條語(yǔ)句。
1.1 判斷語(yǔ)句1——if
if語(yǔ)句的第一種格式
if(關(guān)系表達(dá)式){ 語(yǔ)句體;}
執(zhí)行流程
首先判斷關(guān)系表達(dá)式結(jié)果是true還是false 如果是true就執(zhí)行語(yǔ)句體 如果是false就不執(zhí)行語(yǔ)句體1.2 判斷語(yǔ)句2——if...else
if語(yǔ)句的第二種格式:if...else
if(關(guān)系表達(dá)式) {語(yǔ)句體1;}else {語(yǔ)句體2;}
執(zhí)行流程
首先判斷關(guān)系表達(dá)式結(jié)果是true還是false 如果是true就執(zhí)行語(yǔ)句體1 如果是false就不執(zhí)行語(yǔ)句體 21.3 判斷語(yǔ)句3——if...else if...else
if語(yǔ)句的第三種格式:if...else if...else
if (判斷條件1) { 執(zhí)行語(yǔ)句1;} else if (判斷條件2) { 執(zhí)行語(yǔ)句2;} ...}else if (判斷條件n) { 執(zhí)行語(yǔ)句n;} else { 執(zhí)行語(yǔ)句n+1;}
執(zhí)行流程
首先判斷關(guān)系表達(dá)式1結(jié)果是true還是false 如果是true就執(zhí)行語(yǔ)句體1 如果是false就繼續(xù)判斷關(guān)系表達(dá)式2看其結(jié)果是true還是false 如果是true就執(zhí)行語(yǔ)句體2 如果是false就繼續(xù)判斷關(guān)系表達(dá)3,看其結(jié)果是true還是false ...... 如果沒(méi)有任何關(guān)系表達(dá)式為true,就執(zhí)行語(yǔ)句體n+1注意:有多個(gè)if...else只執(zhí)行一個(gè)
二、選擇語(yǔ)句
1. 選擇語(yǔ)句——switch
Switch語(yǔ)句格式:
switch(表達(dá)式) { case 常量值1: 語(yǔ)句體1;break; case 常量值2: 語(yǔ)句體2;break; ... default: 語(yǔ)句體n+1; break;}
執(zhí)行流程
首先計(jì)算出表達(dá)式的值 其次,和case依次比較,一旦有對(duì)應(yīng)的值,就會(huì)執(zhí)行相應(yīng)的語(yǔ)句,在執(zhí)行的過(guò)程中,遇到break結(jié)束 如果所有的case都和表達(dá)式的值不匹配,就會(huì)執(zhí)行default語(yǔ)句體部分,然后程序結(jié)束注意事項(xiàng):
多個(gè)case后面的數(shù)值不可以重復(fù) switch后面小括號(hào)當(dāng)中只能說(shuō)下列數(shù)據(jù)類型: 基本數(shù)據(jù)類型:bytr/short/char/int 引用數(shù)據(jù)類型:String字符串、eumn枚舉 switch語(yǔ)句格式很靈活: 前后順序可以顛倒 break語(yǔ)句可以省略2. case的穿透性
在switch語(yǔ)句中,如果case的后面不寫break,將出現(xiàn)穿透現(xiàn)象。也就是不會(huì)繼續(xù)判斷下一個(gè)case的值,而是直接向后運(yùn)行,直到遇到break,或者整體switch結(jié)束
由于case存在穿透性,因此我們?cè)诰帉憇witch語(yǔ)句時(shí),必須注意要寫上break
三、循環(huán)結(jié)構(gòu)
順序結(jié)構(gòu)的程序語(yǔ)句只能被執(zhí)行一次。如果想要同樣的操作多次執(zhí)行,,就需要使用到循環(huán)結(jié)構(gòu)。
常用的循環(huán)結(jié)構(gòu)有三種:
for循環(huán) while循環(huán) do…while循環(huán)循環(huán)結(jié)構(gòu)由如下四部分組成:
初始化語(yǔ)句:在循環(huán)最開(kāi)始執(zhí)行,而且執(zhí)行一次 條件判斷:如果成立,則循環(huán)繼續(xù);否則退出循環(huán) 循環(huán)體:指的是重復(fù)要做的事情,由若干行語(yǔ)句組成 步進(jìn)語(yǔ)句:每次循環(huán)之后都要進(jìn)行的掃尾工作1. for循環(huán)
for 循環(huán)語(yǔ)句是支持迭代的一種通用結(jié)構(gòu),利用每次迭代之后更新的計(jì)數(shù)器或類似的變量來(lái)控制迭代次數(shù)。for 循環(huán)語(yǔ)句是 while 循環(huán)的一種簡(jiǎn)化形式,執(zhí)行的次數(shù)在執(zhí)行前就已經(jīng)確定。
語(yǔ)法格式如下:
for(初始化; 布爾表達(dá)式; 步進(jìn)語(yǔ)句) { 循環(huán)體}
2. while循環(huán)
循環(huán)語(yǔ)句標(biāo)準(zhǔn)格式
while (條件判斷){循環(huán)體}
循環(huán)語(yǔ)句擴(kuò)展格式:
初始化表達(dá)式 while(布爾表達(dá)式){ 循環(huán)體 步進(jìn)語(yǔ)句}
3. do…while循環(huán)
對(duì)于while語(yǔ)句而言,如果不滿足條件,則不能進(jìn)入循環(huán)。但有時(shí)候我們需要不滿足條件,也至少執(zhí)行一次。do…while循環(huán)和while循環(huán)相似,不同的是,do…while循環(huán)至少會(huì)執(zhí)行一次。
do…while循環(huán)的標(biāo)準(zhǔn)格式:
do { 循環(huán)體}while(條件判斷);
do…while循環(huán)的擴(kuò)展格式:
初始化語(yǔ)句do{ 循環(huán)體 步進(jìn)語(yǔ)句}while(條件判斷);
4. 三種循環(huán)的區(qū)別
如果條件判斷沒(méi)有滿足過(guò),那么for和while循環(huán)將會(huì)執(zhí)行0次,do...while循環(huán)會(huì)至少執(zhí)行一次
for循環(huán)的變量在小括號(hào)內(nèi)定義,只有在循環(huán)內(nèi)部才可以使用;while和do…while循環(huán)的初始化語(yǔ)句在外面,所以跳出循環(huán)后還可以繼續(xù)使用
在已知循環(huán)次數(shù)的時(shí)候使用推薦使用for,循環(huán)次數(shù)未知的時(shí)推薦使用while
5. 跳出語(yǔ)句
berak語(yǔ)句:主要用在循環(huán)語(yǔ)句或者switch語(yǔ)句中,用來(lái)跳出整個(gè)語(yǔ)句塊打斷這個(gè)循環(huán)。它能跳出最里層的循環(huán),并且繼續(xù)執(zhí)行該循環(huán)下面的語(yǔ)句。
continue語(yǔ)句:適用于任何循環(huán)控制結(jié)構(gòu)中。作用是結(jié)束本次循環(huán),繼續(xù)下一次的循環(huán) 。
在for循環(huán)中,continue語(yǔ)句使程序立即跳轉(zhuǎn)到步進(jìn)語(yǔ)句 在while或者do…while循環(huán)中,程序立即跳轉(zhuǎn)到布爾表達(dá)式的判斷語(yǔ)句6. 死循環(huán)
死循環(huán)就是循環(huán)的條件永遠(yuǎn)為true,是永不結(jié)束的循環(huán) 。標(biāo)準(zhǔn)格式為:
while(true){ 循環(huán)體}
7. 嵌套循環(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ù)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊2. Ajax返回值類型與用法實(shí)例分析3. 如何在jsp界面中插入圖片4. 詳解盒子端CSS動(dòng)畫性能提升5. 使用FormData進(jìn)行Ajax請(qǐng)求上傳文件的實(shí)例代碼6. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)7. asp批量添加修改刪除操作示例代碼8. .NET6打包部署到Windows Service的全過(guò)程9. 解決ajax請(qǐng)求后臺(tái),有時(shí)收不到返回值的問(wèn)題10. css代碼優(yōu)化的12個(gè)技巧
