迴圈結構:
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...