迴圈語句剖析 while與for

2021-06-12 17:21:32 字數 4878 閱讀 8980

迴圈結構:

while                             do while                            for

格式:while (條件表示式)         

迴圈體(執行語句);

注意:int x = 1;

while(x<=2)

system.out.println(「x=」+x);

x++;

與   int x = 1;

x++;

while(x<=2)

system.out.println(「x=」+x);

的區別是上面的只有兩次迴圈而下面的則是無限迴圈,因為while

下面的大括號會一直執行而不返回

x++。

do while 格式:

do迴圈體(執行語句)

while (條件表示式);

do while 與

while

的區別在於:

do while

無論條件是否滿足,迴圈體至少執行一次。

for格式:

for (初始化表示式

;迴圈表示式

;迴圈後的操作)

執行語句;

如:for (int x = 0;x<3;x++)

system.out.println(「x=」+x);

執行流程圖:

for與

while

的區別: 如果變數只為控制迴圈次數作為迴圈增量而存在的話,為了節約記憶體用for

語句更合適,其實

for與

while

可以互換。如:上圖中的x出了

for語句就不存在了

小知識點:

變數有自己的作用域,對於for

來講,如果將用於控制迴圈的增量定義在

for語句中,那麼該變數只在

for語句內有效,

for語句執行完畢,該變數在記憶體中被釋放。

for與

while

可以互換,如果需要定義迴圈增量,用

for語句。

什麼時候使用迴圈結構?

當某些語句執行很多次時,就是用迴圈結構。

例:int x = 1;

for (system.out.println(」a」);x<3;system.out.println(「b」);system.out.prinntln(」c」),x++)

system.out.println(「d」);

列印結果是?

adcdc

走流程即可得出。

注意:條件表示式必須要有真假。for

迴圈裡面不一定都是

int x = 1

,只要是合法表示式就行。當有多個表示式時可以用逗號分開,如上例中的

system.out.prinntln(」c」),x++。

for裡面的初始化表示式可以不寫,迴圈後的表示式也可以不寫。

無限迴圈的最簡單表現形式:for (;;){}   對於for

,不寫條件表示式預設就是

ture

,while

的即是while (ture){}

例:獲取1~10

的和,並列印。

//1.定義變數用於儲存不斷變化的和。

int sum = 0;

//定義變數,記錄住不斷變化的被加的數

int x = 1;

//定義迴圈,重複加法的過程

while(x<=10)

sum = sum + x;

x++;

system.out.println(「sum=」+sum);

for語句表現形式(更合適):

int sum = 0;

for (int x = 0;x<=10;x++)

sum += x;

system.out.println(」sum=」+sum);

例:1~100之間7

的倍數的個數,並列印。

思路:1.先對1

到100

進行迴圈(遍歷)

2.在遍歷的過程中定義乙個條件:只對

7的倍數進行操作

3.因為

7的倍數不確定,只要符合條件,就通過乙個變數來記錄住這個變化的次數。

步驟:1.

選擇for語句

2.再迴圈中定義判斷,只要是

7的倍數即可,使用

if語句。條件「

7的倍數:

x%7=0

3.定義變數,該變數隨著

7的倍數的出現而自增。

int count = 0;

for (int x = 1; x<=100; x++)

if (x%7==0)

count++;

system.out.println(「count=」count);

總結(累加思想):原理是通過變數(如count

)記錄住每次迴圈操作後的結果(如

count++

)。通過迴圈的形式,進行累加動作。

(計數器思想):通過乙個變數記錄住資料的狀態變化,也需要通過迴圈完成。

語句巢狀形式:其實就是語句中還有語句。

迴圈巢狀:迴圈中還有迴圈

如:for (int x = ;x<3;x++)

for (int y = 0;y<4;y++)

system.out,prinrln();}

print與

println

的區別在於後者會自動換行

上圖列印的結果就是

總結:對於列印長方形,外迴圈控制的是行數,內迴圈控制的是每一行的列數,也就是一行中元素的個數。

例:列印         *****

分析:發現圖形有很多行,每一行有很多列。要使用巢狀迴圈。原理:大圈套小圈

解法:class  forfor01

public static void main(string args) 

for (int x = 0 ;x<5 ;x++ )

for (int y = x;y<5 ;y++ )

system.out.print("*");

system.out.println();

class forfor02

public static void main(string args)

for (int x=0; x<5 ;x++ )

for (int y=0 ; y<=x ;y++ )

system.out.print("*");

system.out.println();

不是規律的規律:尖朝上,可以改變條件,讓條件隨著外迴圈變化;尖朝下,可以改變初始化值,讓初始化值隨著外迴圈變化。

例:列印

class forfor03

public static void main(string args)

for (int x=1;x<=11;x++)

for (int y=1;y<=x ;y++ )

system.out.print(y);

system.out.println();

例:列印

1*1=1

1*2=2  2*2=4

1*3=3  2*3=6  3*3=9

class forfor04

public static void main(string args)

for (int x=1; x<=3; x++)

for (int y=1;y<=x ;y++ )

system.out.print(y+"*"+x+"="+y*x+"\t");

system.out.println();

2.6.4 其他流程控制語句:

break(跳出)

:只應用與選擇結構和迴圈結構。

continue(繼續

):只應用於迴圈結構。

注意:這兩個語句離開應用範圍,存在是沒有意義的。這兩個語句單獨存在下面都不可以有語句,因為執行不到。continue

語句是結束本次迴圈繼續下次迴圈。標號的出現,可以讓兩個語句作用於指定的範圍。

如:for (int x =0;x<3;x++)

if(x>1)

break;

system.out.println(「hello world」);p

w :for (int x = 0 ;x<3;x++)

q :for (int y=0;y<4;y++)

system.our.println(「hello world」);

break w;

continue只能作用於迴圈結構,繼續迴圈

.特點:結束本次迴圈,繼續下次迴圈。

for (

int x=0;x<3;x++)

if (x%2=1)

continue;

system.out.println(「x=」+x);

w :for (

int x=0;x<3;x++)

for(int y=0,y<4;y++)

system.out.println(「x=」+x);

continue w;

例:列印

class test

{    public static void main(string args) 

for(int x=0;x<5;x++)

for(int y=x+1;y<5;y++)

system.out.print(" ");

for(int z=0;z<=x;z++)

system.out.print("* ");

system.out.println();

while迴圈語句

例子如下 public static void main string args 表示式滿足就執行迴圈體,直到不滿足條件就跳出迴圈 分別求出1 200之間的奇數之和,偶數之和 int i 1,sum 0,sum1 0 while i 201 if i 2 0 i system.out.println...

while迴圈語句

案例 珠穆朗瑪峰 完整格式 初始化語句 while 條件判斷語句 執行初始化語句 執行條件判斷語句,看其結果是true還是false 如果是true,繼續執行 如果是false,結束迴圈 執行迴圈體語句 執行條件控制語句 回到2繼續 需求 世界上最高山峰是珠穆朗瑪峰 8844.43m 8844433...

while迴圈語句

計算輸出1 2 3 100的所有數字的相加和n 1s 0 while n 101 s s n n n 1 print s 計算輸出1 2 3 4 5.99的所有數字的和n 1s 0 while n 100 temp n 2 if temp 0 s s n else s s n n n 1 print...