1. 程式人生 > 實用技巧 >迴圈結構2

迴圈結構2

迴圈結構2

for迴圈

  1. for迴圈,可以使一些迴圈結構變得更簡單。

  2. for迴圈語句是支援迭代的一種通用結構,是最有效,最靈活的迴圈結構。

  3. for迴圈如果寫為for( ){}則為死迴圈空語句,可以一直迴圈下去。

  4. for迴圈次數是在執行前就確定了的,語法如下:

for(初始化;布林表示式;更新){
//程式碼語句
}

對比while迴圈和for迴圈

package weiwei.struct;

public class For01 {//對比while迴圈和for迴圈

public static void main(String[] args) {

int i = 0;
while(i<100){
System.out.println(i);
i+=2;//i=i+2
}
System.out.println("while迴圈結束");
//for迴圈(初始化i1;條件判斷i1是否小於100;i1每次迴圈產生迭代)
for (int i1 = 0; i1 < 100; i1++) {//快捷輸入方式: 100.for 回車即可自動生成
System.out.println(i1);//迴圈體
}
System.out.println("for迴圈結束");
}
}

利用for迴圈練習 "計算0~100之間奇數和偶數分別的和":

package weiwei.struct;

public class For02 {
public static void main(String[] args) {
//計算0——100之間的奇數與偶數分別的和。
int oddSum= 0;//設變數oddSum為奇數的和
int evenSum=0;//設變數evenSum為偶數的和
for (int i = 0; i < 100; i++) {//初始化i;條件判斷i<100;每次迴圈i產生迭代+1
if (i%2!=0){//利用模運算i%2,i除以2的餘數結果不等於0,則一定是奇數
oddSum+=i;//篩選出來的奇數就讓它+oddSum(oddSum在這裡相當於奇數的儲存器)
}else{//否則 一定是偶數
evenSum+=i;//讓它和evenSum相加,
}
}
System.out.println("奇數和為:"+oddSum);//結果為2500
System.out.println("偶數和為:"+evenSum);//結果為2450
}
}

利用for迴圈,輸出1~1000內能被5整除的數,並且每行輸出三個:

package weiwei.struct;

public class For03 {
public static void main(String[] args) {
//用迴圈輸出1~1000之間能被5整除的數,並且每行輸出3個

for (int i = 0; i <= 1000; i++) {
if (i%5==0){//如果i除以5的餘數等於0,則輸出
System.out.print(i+"\t");
//print是輸出完不會換行,加入轉義字元"\t"來分開每組資料
}//為滿足每行輸出三個資料,就代表i除5*3(15),餘數為0的時候換行
if (i%(5*3)==0){
System.out.println();//換行
}
}
}
}

使用for語句做九九乘法表:

package weiwei.struct;

public class For04 {//乘法表

public static void main(String[] args) {//main方法
//使用巢狀法:
for (int j = 1; j <= 9; j++) {//變數j初始值為1,小於或等於9,每迴圈一次+1
//變數i初始值為1,小於或等於j的值,巢狀的for,每迴圈一次+1,i值超過j時終止
for (int i = 1; i <= j; i++) {
//巢狀的for迴圈一次就輸出一次,迴圈次數取決於j的值,"\t"表示空格,print為輸出不換行
System.out.print(i+"*"+j+"="+(j*i)+"\t");
}
//巢狀的for迴圈終止一次後就換行,然後繼續迴圈知道j大於9 程式終止
System.out.println();
}
}
}

解釋:首先給變數j和i各賦初始值1,巢狀內的變數i不能數值不能超過外部的j,所以假設j等於3的時候,巢狀的i最多隻可以迴圈三次,每一次迴圈i+1,當數值超過j時,終止迴圈,然後System.out.println();切換下一行。之後迴圈到變數j,變數j+1,這樣導致巢狀的i也可以得到多一次的迴圈。一直到j大於9之後,程式終止,類似於j為時針,i為分針,i迴圈到終止後,j才能迴圈一次。不同的是j每次迴圈+1會使i能夠得到更多一次的迴圈。

增強for迴圈

java5引入的一種主要用於陣列或集合體的增強型for迴圈。

格式為:

for(宣告語句:表示式){
//程式碼語句
}
package weiwei.struct;

public class For05 {
public static void main(String[] args) {
//定義一個數組 加[]代表是陣列型別,變數型別[]變數名={陣列}
int [] numbers = {10,20,30,40,50};
for (int x:numbers){//通過numbers將陣列的值全部賦值給x,
System.out.println(x);

}
//////////////////////////////////////////
System.out.println("==========================");
//以for迴圈解釋 增強for迴圈
for (int i = 0; i < 5; i++) {//i迴圈五次,每次加1
//輸出numbers變數的第i個數值
System.out.println(numbers[i]);
}
}
}

增強for迴圈,常用與遍歷陣列和一些集合物件,是for的簡化版。