【基礎模塊】簡簡單單看懂流程控制語句,你學會了嗎?

概述

在一個程序執行的過程中,各條語句的執行順序對程序的結果是有直接影響的。也就是說,程序的流程對運行結果有直接的影響。所以,我們必須清楚每條語句的執行流程。而且,很多時候我們要通過控制語句的執行順序來實現我們要完成的功能。

一.判斷語句

1.判斷語句--if

<code>

if

(關係表達式){ 語句體; }/<code>

在一個程序執行的過程中,各條語句的執行順序對程序的結果是有直接影響的。也就是說,程序的流程對運行結果有直接的影響。所以,我們必須清楚每條語句的執行流程。而且,很多時候我們要通過控制語句的執行順序來實現我們要完成的功能。

執行流程:

首先判斷關係表達式看其結果是true還是false

如果是true就執行語句體

如果是false就不執行語句體


【基礎模塊】簡簡單單看懂流程控制語句,你學會了嗎?

if語句


<code>

public

static

void

main

(

String[] args

)

{ System.

out

.println(

"開始"

);

int

a =

10

;

int

b =

20

;

if

(a == b){ System.

out

.println(

"a等於b"

); }

int

c =

10

;

if

(a == c){ System.

out

.println(

"a等於c"

); } System.

out

.println(

"結束"

); }/<code>

2 判斷語句--if...else

<code>

if

(關係表達式) { 語句體1; }

else

{ 語句體2; }/<code>

執行流程

首先判斷關係表達式看其結果是true還是false

如果是true就執行語句體1

如果是false就執行語句體2


【基礎模塊】簡簡單單看懂流程控制語句,你學會了嗎?

if-else語句

<code>

public

static

void

main

(

String[] args

)

{

int

a =

1

;

if

(a %

2

==

0

) { System.

out

.println(

"a是偶數"

); }

else

{ System.

out

.println(

"a是奇數"

); } System.

out

.println(

"結束"

); }/<code>

3 判斷語句--if..else if...else


<code>

if

(判斷條件

1

) { 執行語句

1

; }

else

if

(判斷條件

2

) { 執行語句

2

; } n

-2

else

if

}

else

if

(判斷條件n) { 執行語句n; }

else

{ 執行語句n+

1

; }/<code>

執行流程

首先判斷關係表達式1看其結果是true還是false

如果是true就執行語句體1

如果是false就繼續判斷關係表達式2看其結果是true還是false

如果是true就執行語句體2

如果是false就繼續判斷關係表達式…看其結果是true還是false

如果沒有任何關係表達式為true,就執行語句體n+1。


【基礎模塊】簡簡單單看懂流程控制語句,你學會了嗎?

if-esle if-else 語句

<code>

public

static

void

main

(

String[] args

)

{

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); }/<code>
<code>

指定考試成績,判斷學生等級

90

-100

優秀

80

-89

70

-79

60

-69

及格

60

以下

不及格

/<code>
<code>

public

static

void

main

(

String[] args

)

{

int

score =

100

;

if

(score<

0

|| score>

100

){ System.

out

.println(

"你的成績是錯誤的"

); }

else

if

(score>=

90

&& score

100

){ System.

out

.println(

"你的成績屬於優秀"

); }

else

if

(score>=

80

&& score<

90

){ System.

out

.println(

"你的成績屬於好"

); }

else

if

(score>=

70

&& score<

80

){ System.

out

.println(

"你的成績屬於良"

); }

else

if

(score>=

60

&& score<

70

){ System.

out

.println(

"你的成績屬於及格"

); }

else

{ System.

out

.println(

"你的成績屬於不及格"

); } }/<code>

二、選擇語句--switch

<code>

switch

(表達式) {

case

常量值

1

: 語句體

1

;

break

;

case

常量值

2

: 語句體

2

;

break

; ...

default

: 語句體n+

1

;

break

; }/<code>

執行流程

首先計算出表達式的值

其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結

束。

最後,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然後程序結束掉。


【基礎模塊】簡簡單單看懂流程控制語句,你學會了嗎?

switch語句

<code>

public

static

void

main

(

String[] args

)

{

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(

"你輸入的數字有誤"

);

break

; } }/<code>

注意:case的穿透性

在switch語句中,如果case的後面不寫break,將出現穿透現象,也就是不會在判斷下一個case的值,直接向後運行,直到遇到break,或者整體switch結束。

<code>

public

static

void

main

(

String[] args

)

{

int

i =

5

;

switch

(i){

case

0

: System.

out

.println(

"執行case0"

);

break

;

case

5

: System.

out

.println(

"執行case5"

);

case

10

: System.

out

.println(

"執行case10"

);

default

: System.

out

.println(

"執行default"

); } }/<code>
【基礎模塊】簡簡單單看懂流程控制語句,你學會了嗎?

運行結果

上述程序中,執行case5後,由於沒有break語句,程序會一直向後走,不會在判斷case,也不會理會break,直接運行完整體switch。

由於case存在穿透性,因此初學者在編寫switch語句時,必須要寫上break。

三、循環語句

循環概述:循環語句可以在滿足循環條件的情況下,反覆執行某一段代碼,這段被重複執行的代碼被稱為循環體語句,當反覆執行這個循環體時,需要在合適的時候把循環判斷條件修改為false,從而結束循環,否則循環將一直執行下去,形成死循環。

1.循環語句--for

<code>

for

(初始化表達式①; 布爾表達式②; 步進表達式④){ 循環體③ }/<code>

執行流程

執行順序:①②③④>②③④>②③④…②不滿足為止。

①負責完成循環變量初始化

②負責判斷是否滿足循環條件,不滿足則跳出循環

③具體執行的語句

④循環後,循環條件所涉及變量的變化情況


【基礎模塊】簡簡單單看懂流程控制語句,你學會了嗎?

for語句

<code>

public

static

void

main

(

String[] args

)

{ System.

out

.println(

"HelloWorld"

); System.

out

.println(

"HelloWorld"

); System.

out

.println(

"HelloWorld"

); System.

out

.println(

"HelloWorld"

); System.

out

.println(

"HelloWorld"

); System.

out

.println(

"HelloWorld"

); System.

out

.println(

"HelloWorld"

); System.

out

.println(

"HelloWorld"

); System.

out

.println(

"HelloWorld"

); System.

out

.println(

"HelloWorld"

); System.

out

.println(

"‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐"

); <

10

for

(

int

x =

0

; x

10

; x++) { System.

out

.println(

"HelloWorld"

+x); }/<code>

循環練習:使用循環,計算1-100之間的偶數和

<code>

public

static

void

main

(

String[] args

)

{

int

sum =

0

;

for

(

int

i =

1

; i <=

100

; i++) {

if

(i %

2

==

0

){ sum += i; } } System.

out

.println(

"sum:"

+sum); }/<code>

2.循環語句--while

<code>初始化表達式① 

while

( 布爾表達式②){ 循環體③ 步進表達式④ }/<code>

執行流程

執行順序:①②③④>②③④>②③④…②不滿足為止。

①負責完成循環變量初始化。

②負責判斷是否滿足循環條件,不滿足則跳出循環。

③具體執行的語句。

④循環後,循環變量的變化情況。


【基礎模塊】簡簡單單看懂流程控制語句,你學會了嗎?

while語句

while循環輸出10次HelloWorld

<code>

public

static

void

main

(

String[] args

)

{

int

i =

1

;

while

(i

10

){ System.

out

.println(

"HelloWorld"

); i++; } }/<code>

while循環計算1-100之間的和

<code>

public

static

void

main

(

String[] args

)

{

int

sum =

0

;

int

i =

1

;

while

(i

100

){ sum += i ; i++; } System.

out

.println(

"1‐100的和是:"

+sum); }/<code>

3、循環語句--do...while

<code>初始化表達式① 

do

{ 循環體③ 步進表達式④ }

while

(布爾表達式②); 執行流程執行順序:①③④>②③④>②③④…②不滿足為止。 ①負責完成循環變量初始化。 ②負責判斷是否滿足循環條件,不滿足則跳出循環。 ③具體執行的語句 ④循環後,循環變量的變化情況/<code>

執行流程

執行順序:①③④>②③④>②③④…②不滿足為止。

①負責完成循環變量初始化。

②負責判斷是否滿足循環條件,不滿足則跳出循環。

③具體執行的語句

④循環後,循環變量的變化情況


【基礎模塊】簡簡單單看懂流程控制語句,你學會了嗎?

do-while語句

輸出10次HelloWorld

<code>

public

static

void

main

(

String[] args

)

{

int

x=

1

;

do

{ System.

out

.println(

"HelloWorld"

); x++; }

while

(x

10

); }/<code>

do...while循環的特點:無條件執行一次循環體,即使我們將循環條件直接寫成false,也依然會循環一次。這樣的循環具有一定的風險性,因此初學者不建議使用do...while循環。

<code>

public

static

void

main

(

String[] args

)

{

do

{ System.

out

.println(

"無條件執行一次"

); }

while

(

false

); }/<code>

循環語句的區別

for 和 while 的小區別:

控制條件語句所控制的那個變量,在for循環結束後,就不能再被訪問到了,而while循環結束還可以繼續使用,如果你想繼續使用,就用while,否則推薦使用for。原因是for循環結束,該變量就從內存中消失,能夠提高內存的使用效率。

在已知循環次數的時候使用推薦使用for,循環次數未知的時推薦使用while。

跳出語句

break

使用場景:終止switch或者循環

在選擇結構switch語句中

在循環語句中

離開使用場景的存在是沒有意義的

<code>

public

static

void

main

(

String[] args

)

{

for

(

int

i =

1

; i

10

; i++) {

if

(i ==

3

){

break

; } System.

out

.println(

"HelloWorld"

+i); } }/<code>

跳出多層循環:

<code>

public

static

void

main

(

String[] args

)

{ label:

for

(

int

i =

0

; i

5

; i++){

for

(

int

j =

0

; j

8

; j++){ System.

out

.println(

"執行循環j:"

+j);

for

(

int

y =

0

; y

8

; y++){ System.

out

.println(

"執行循環y:"

+y);

if

(y==

3

){ System.

out

.println(

"執行跳出多層循環"

);

break

label; } } } } } /<code>

continue

使用場景:結束本次循環,繼續下一次的循環

<code>

public

static

void

main

(

String[] args

)

{

for

(

int

i =

1

; i <=

10

; i++) {

if

(i ==

3

){

continue

; } System.

out

.println(

"HelloWorld"

+i); } }/<code>

擴展知識點

死循環

死循環:也就是循環中的條件永遠為true,死循環的是永不結束的循環。例如:while(true){}

在後期的開發中,會出現使用死循環的場景,例如:我們需要讀取用戶輸入的輸入,但是用戶輸入多少數據我們並不清楚,也只能使用死循環,當用戶不想輸入數據了,就可以結束循環了,如何去結束一個死循環呢,就需要使用到跳出語句了。

嵌套循環

所謂嵌套循環,是指一個循環的循環體是另一個循環。比如for循環裡面還有一個for循環,就是嵌套循環。總共的循環次數=外循環次數*內循環次數

<code>

for

(初始化表達式①; 循環條件②; 步進表達式⑦) {

for

(初始化表達式③; 循環條件④; 步進表達式⑥) { 執行語句⑤; } }/<code>

嵌套循環執行流程:

執行順序:

①②③④⑤⑥>④⑤⑥>⑦②③④⑤⑥>④⑤⑥

外循環一次,內循環多次。

比如跳繩:一共跳5組,每組跳10個。5組就是外循環,10個就是內循環。

練習:使用嵌套循環,打印5*8的矩形

<code>

public

static

void

main

(

String[] args

)

{

for

(

int

i =

0

; i

5

; i++){

for

(

int

j =

0

; j

8

; j++){ System.

out

.print(

"*"

); } System.

out

.println(); } }/<code>


分享到:


相關文章: