十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
創(chuàng)新互聯(lián)建站公司2013年成立,先為翁牛特等服務(wù)建站,翁牛特等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為翁牛特企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
我們從零開(kāi)始學(xué)習(xí)大數(shù)據(jù)技術(shù),從java基礎(chǔ),到Linux技術(shù)涉獵,再深入到大數(shù)據(jù)技術(shù)的Hadoop、Spark、Storm技術(shù),最后到大數(shù)據(jù)企業(yè)平臺(tái)的搭建,層層遞進(jìn),由點(diǎn)到面!希望技術(shù)大牛能過(guò)來(lái)指導(dǎo)學(xué)習(xí)。
上一節(jié)學(xué)習(xí)了三元運(yùn)算符/鍵盤錄入,本節(jié)學(xué)習(xí)流程控制語(yǔ)句。
開(kāi)始之前,我們先看一下上節(jié)的練習(xí)題。
一、練習(xí)題
(1)鍵盤錄入三個(gè)數(shù)據(jù),獲取三個(gè)數(shù)據(jù)中最大值,程序如下:
程序執(zhí)行結(jié)果如下:
(2)鍵盤錄入兩個(gè)數(shù)據(jù),比較兩個(gè)數(shù)據(jù)是否相等,程序代碼如下:
程序執(zhí)行結(jié)果如下:
二、流程控制語(yǔ)句
通過(guò)我們前面的學(xué)習(xí),我們應(yīng)該可以感覺(jué)到在一個(gè)程序執(zhí)行的過(guò)程中,各條語(yǔ)句的執(zhí)行順序?qū)Τ绦虻慕Y(jié)果是有直接影響的,也就是說(shuō)程序的流程對(duì)運(yùn)行結(jié)果有直接的影響。
所以,我們必須要清楚每條語(yǔ)句的執(zhí)行過(guò)程。而且,很多時(shí)候我們要通過(guò)控制語(yǔ)句的執(zhí)行順序來(lái)實(shí)現(xiàn)我們要完成的功能。
下面我們來(lái)講講流程控制語(yǔ)句的分類(主要有三種):
順序結(jié)構(gòu)
選擇結(jié)構(gòu)
循環(huán)結(jié)構(gòu)
流程控制語(yǔ)句概念:可以控制程序的執(zhí)行流程
1、順序結(jié)構(gòu)
規(guī)則:從上往下,依次執(zhí)行
舉例:
程序執(zhí)行結(jié)果:
選擇結(jié)構(gòu)有兩種語(yǔ)句,分別為如下:
if 語(yǔ)句
switch語(yǔ)句
if語(yǔ)句
if語(yǔ)句(三種格式)
格式1:適合做單個(gè)判斷
格式2:適合做兩個(gè)判斷
格式3:適合做多個(gè)判斷
if(比較表達(dá)式){
語(yǔ)句體;
}
執(zhí)行流程規(guī)則:
先計(jì)算比較表達(dá)式的值,看其返回值是true,還是false.
如果是true,就執(zhí)行語(yǔ)句體;
如果是false,就不執(zhí)行語(yǔ)句體。
程序代碼舉例:
程序執(zhí)行結(jié)果:
可見(jiàn),在if語(yǔ)句中,x等于10為true,大括號(hào)里的語(yǔ)句體可以正常執(zhí)行;
x等于20為false,大括號(hào)里的語(yǔ)句體不執(zhí)行,但不影響后面的語(yǔ)句“over”執(zhí)行.
if語(yǔ)句的注意事項(xiàng):
比較表達(dá)式無(wú)論簡(jiǎn)單還是復(fù)雜,結(jié)果必須是boolean類型
if語(yǔ)句的語(yǔ)句體如果是一條語(yǔ)句,大括號(hào)可以省略;
如果是多條語(yǔ)句,就不能省略,建議永遠(yuǎn)都不要省略。
一般來(lái)說(shuō),有左大括號(hào)就沒(méi)有分號(hào),有分號(hào)就沒(méi)有左大括號(hào)
如下程序代碼,if語(yǔ)句里面的表達(dá)式都是布爾類型的
②if語(yǔ)句格式2
if(比較表達(dá)式){
語(yǔ)句體1;
}else {
語(yǔ)句體2;
}
執(zhí)行流程:
首先計(jì)算比較表達(dá)式的值,看其返回值式true還是false.
如果式true,就執(zhí)行語(yǔ)句體1;
如果式false,就執(zhí)行語(yǔ)句體2;
注意:else后面是沒(méi)有比較表達(dá)式的,只有if后面才會(huì)加表達(dá)式
程序代碼案例,如下:
程序執(zhí)行結(jié)果:
練習(xí)題:
下面我們針對(duì)if else語(yǔ)句做兩個(gè)練習(xí)題:
1、獲取兩個(gè)數(shù)據(jù)中較大的值
2、判斷一個(gè)數(shù)據(jù)是奇數(shù)還是偶數(shù),并輸出
程序代碼如下,我將兩道題都通過(guò)下述代碼實(shí)現(xiàn):
執(zhí)行結(jié)果:
可見(jiàn),if語(yǔ)句和三元運(yùn)算符可以完成相同的效果,但也是有需要注意以下的區(qū)別:
區(qū)別:
三元運(yùn)算符實(shí)現(xiàn)的,都可以采用if語(yǔ)句實(shí)現(xiàn),反之不成立。
什么時(shí)候if語(yǔ)句實(shí)現(xiàn)不能用三元運(yùn)算符改進(jìn)呢?
當(dāng)if語(yǔ)句控制的操作是一個(gè)輸出語(yǔ)句的時(shí)候就不能。
因?yàn)槿\(yùn)算符是一個(gè)運(yùn)算符,必須要有一個(gè)結(jié)果返回,不能是一個(gè)輸出語(yǔ)句。
案例:
程序執(zhí)行結(jié)果:
如果將判斷奇偶的例子,使用三元運(yùn)算做改進(jìn),可以參照以下程序代碼:
程序執(zhí)行結(jié)果:
可見(jiàn),驗(yàn)證了我們前面提到的三元運(yùn)算符實(shí)現(xiàn)的,都可以采用if語(yǔ)句實(shí)現(xiàn),反之不成立的結(jié)論。
③if語(yǔ)句的格式3
if(比較表達(dá)式1){
語(yǔ)句體1;
}else if(比較表達(dá)式2){
語(yǔ)句體2;
}else if(比較表達(dá)式3){
語(yǔ)句體3;
}
...
else{
語(yǔ)句體n+1;
}
執(zhí)行流程:
首先計(jì)算表達(dá)式1看其返回值是true還是false,
如果是true,就執(zhí)行語(yǔ)句體1,if語(yǔ)句結(jié)束。
如果是false,接著計(jì)算比較表達(dá)式2看其返回值是true還是false
如果是true,就執(zhí)行語(yǔ)句體2,if語(yǔ)句結(jié)束
如果是false,接著計(jì)算比較表達(dá)式3,看其返回值是true還是false.
...
如果是false,則執(zhí)行語(yǔ)句體n+1.
舉例:鍵盤錄入一個(gè)成績(jī),判斷并輸出成績(jī)的等級(jí)。
90 - 100 優(yōu)秀
80 - 90 好
70 - 80 良
60 - 70 及格
0 - 60 不及格
程序代碼如下:
程序執(zhí)行結(jié)果:
注意:
在寫一個(gè)程序的基本測(cè)試的時(shí)候,一定要考慮以下幾個(gè)問(wèn)題:
正確數(shù)據(jù)
錯(cuò)誤數(shù)據(jù)
邊界數(shù)據(jù)
所以針對(duì)上面的數(shù)據(jù),我們可以做個(gè)改進(jìn),先判斷先錯(cuò)誤數(shù)據(jù),這樣會(huì)更好,如下:
擴(kuò)展練習(xí)題(自行完成):
1、獲取兩個(gè)數(shù)據(jù)中較大的值
2、判斷一個(gè)數(shù)據(jù)是奇數(shù)還是偶數(shù),并輸出
本節(jié)我們就先告一段落,下一節(jié)我們將學(xué)習(xí)Switch語(yǔ)句
往期文章:
從零開(kāi)始學(xué)大數(shù)據(jù)-Java基礎(chǔ)開(kāi)篇(1)
從零開(kāi)始學(xué)大數(shù)據(jù)-Java基礎(chǔ)語(yǔ)法(2)
從零開(kāi)始學(xué)大數(shù)據(jù)-Java運(yùn)算符(3)
從零開(kāi)始學(xué)大數(shù)據(jù)-Java基礎(chǔ)-三元運(yùn)算符/鍵盤錄入(4)