從零開始學大數據-Java基礎-流程控制語句(5)


我們從零開始學習大數據技術,從java基礎,到Linux技術涉獵,再深入到大數據技術的Hadoop、Spark、Storm技術,最後到大數據企業平臺的搭建,層層遞進,由點到面!希望技術大牛能過來指導學習。


上一節學習了三元運算符/鍵盤錄入,本節學習流程控制語句。

開始之前,我們先看一下上節的練習題。


一、練習題

(1)鍵盤錄入三個數據,獲取三個數據中最大值,程序如下:

1.png

程序執行結果如下:

2.png

(2)鍵盤錄入兩個數據,比較兩個數據是否相等,程序代碼如下:

3.png

程序執行結果如下:

4.png


二、流程控制語句


通過我們前面的學習,我們應該可以感覺到在一個程序執行的過程中,各條語句的執行順序對程序的結果是有直接影響的,也就是說程序的流程對運行結果有直接的影響。


所以,我們必須要清楚每條語句的執行過程。而且,很多時候我們要通過控制語句的執行順序來實現我們要完成的功能。

下面我們來講講流程控制語句的分類(主要有三種):

  • 順序結構

  • 選擇結構

  • 循環結構


流程控制語句概念:可以控制程序的執行流程


1、順序結構


規則:從上往下,依次執行

舉例:

5.png

程序執行結果:

6.png


2、選擇結構(也被稱爲分支結構)

選擇結構有兩種語句,分別爲如下:

  • if 語句

  • switch語句


   

if語句


if語句(三種格式)

  1. 格式1:適合做單個判斷

  2. 格式2:適合做兩個判斷

  3. 格式3:適合做多個判斷


if語句格式1

if(比較表達式){

語句體;

}


執行流程規則:

  • 先計算比較表達式的值,看其返回值是true,還是false.

  • 如果是true,就執行語句體;

  • 如果是false,就不執行語句體。

序代碼舉例:

6.1.png

程序執行結果:

7.png

  • 可見,在if語句中,x等於10爲true,大括號裏的語句體可以正常執行;

  • x等於20爲false,大括號裏的語句體不執行,但不影響後面的語句“over”執行.


if語句的注意事項:

  1. 比較表達式無論簡單還是複雜,結果必須是boolean類型

  2. if語句的語句體如果是一條語句,大括號可以省略;

  3. 如果是多條語句,就不能省略,建議永遠都不要省略。

  4. 一般來說,有左大括號就沒有分號,有分號就沒有左大括號

如下程序代碼,if語句裏面的表達式都是布爾類型的

8.png


if語句格式2


if(比較表達式){

語句體1;

}else {

語句體2;

}

執行流程:

  • 首先計算比較表達式的值,看其返回值式true還是false.

  • 如果式true,就執行語句體1;

  • 如果式false,就執行語句體2;

注意:else後面是沒有比較表達式的,只有if後面纔會加表達式


程序代碼案例,如下:

9.png

程序執行結果:

10.png


練習題:


下面我們針對if else語句做兩個練習題:

1、獲取兩個數據中較大的值

2、判斷一個數據是奇數還是偶數,並輸出

程序代碼如下,我將兩道題都通過下述代碼實現:

11.png

執行結果:


12.png

  • 可見,if語句和三元運算符可以完成相同的效果,但也是有需要注意以下的區別:

區別:

三元運算符實現的,都可以採用if語句實現,反之不成立。

什麼時候if語句實現不能用三元運算符改進呢?

  • 當if語句控制的操作是一個輸出語句的時候就不能。

  • 因爲三元運算符是一個運算符,必須要有一個結果返回,不能是一個輸出語句。


案例:

13.png


程序執行結果:

14.png


如果將判斷奇偶的例子,使用三元運算做改進,可以參照以下程序代碼:

15.png

程序執行結果:

16.png


  • 可見,驗證了我們前面提到的三元運算符實現的,都可以採用if語句實現,反之不成立的結論。


if語句的格式3


if(比較表達式1){

語句體1;

}else if(比較表達式2){

語句體2;

}else if(比較表達式3){

語句體3;

}

...

else{

語句體n+1;

}

執行流程:

  • 首先計算表達式1看其返回值是true還是false,

  • 如果是true,就執行語句體1,if語句結束。

  • 如果是false,接着計算比較表達式2看其返回值是true還是false

  • 如果是true,就執行語句體2,if語句結束

  • 如果是false,接着計算比較表達式3,看其返回值是true還是false.

  • ...

  • 如果是false,則執行語句體n+1.

舉例:鍵盤錄入一個成績,判斷並輸出成績的等級。

  • 90 - 100 優秀

  • 80 - 90 好

  • 70 - 80 良

  • 60 - 70 及格

  • 0 - 60 不及格

程序代碼如下:



程序執行結果:


注意:

在寫一個程序的基本測試的時候,一定要考慮以下幾個問題:

  • 正確數據

  • 錯誤數據

  • 邊界數據


所以針對上面的數據,我們可以做個改進,先判斷先錯誤數據,這樣會更好,如下:



擴展練習題(自行完成):

1、獲取兩個數據中較大的值

2、判斷一個數據是奇數還是偶數,並輸出


本節我們就先告一段落,下一節我們將學習Switch語句


往期文章:


從零開始學大數據-Java基礎開篇(1)

從零開始學大數據-Java基礎語法(2)

從零開始學大數據-Java運算符(3)

從零開始學大數據-Java基礎-三元運算符/鍵盤錄入(4)


微信公衆號長按關注.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章