1. 程式人生 > 實用技巧 >for迴圈詳解

for迴圈詳解

for 迴圈詳解

for 迴圈語句的一般形式為:

for (表示式1; 表示式2; 表示式3) { 語句; }

首先要強調兩點: 1) 表示式1、表示式2和表示式3之間是用分號;隔開的,千萬不要寫成逗號。

2) for(表示式1;表示式2;表示式3)的後面千萬不要加分號,很多新手都會犯這種錯誤——會情不自禁地在後面加分號。

因為 for 迴圈只能控制到其後的一條語句,而在C語言中分號也是一個語句——空語句。所以如果在後面加個分號,那麼 for 迴圈就只能控制到這個分號,下面大括號裡面的語句就不屬於 for 迴圈了。

下面來看看它的執行過程:

  1. 求解表示式1。

  2. 求解表示式2。若其值為真,則執行 for 語句中指定的內嵌語句,然後執行第3步;若表示式2值為假,則結束迴圈,轉到第5步。

  3. 求解表示式3。

  4. 轉回上面第2步繼續執行。

  5. 迴圈結束,執行 for 語句下面的語句。

從這個執行過程中可以看出,“表示式1”只執行一次,迴圈是在“表示式2”“表示式3”和“內嵌語句”之間進行的。

for語句最簡單的形式是:

for (迴圈變數賦初值; 迴圈條件; 迴圈變數增值) { 語句; }

for迴圈典例

package com;

public class Demo03 {

public static void main(String[] args) {
// TODO Auto-generated method stub
int oddSum = 0; //奇數和
int evenSum = 0; //偶數和

for(int i = 0;i<=100; i++){
if(i%2==0){
evenSum+=i;
}else{
oddSum+=i;
}
}
System.out.println("奇數和為:"+oddSum);
System.out.println("偶數和為:"+evenSum);
}

}

奇數和為:2500
偶數和為:2550
package com;
/**
* 九九乘法表
* @author dell
*
*/
public class Demo04 {

public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i = 1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
}



1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
package com;

public class Demo05 {

public static void main(String[] args) {
// TODO Auto-generated method stub
//while 方法迴圈輸出1-1000之間能被5整除的數,並且每行輸出3個
int i =0;
int count = 0; //用於計算輸出的個數,以便換貨
while(i<1000){
if(i%5==0){
System.out.print(i+"\t");
count++;
}
i++; //i自增,以便下一個數的判斷
if(count%3==0){ //每行顯示3個
System.out.println();
}
}

System.out.println("====================================");
//for 方法迴圈輸出1-1000之間能被5整除的數,並且每行輸出3個
int count2 = 0;
for(int j=0;j<=1000;j++){
if(j%5==0){
System.out.print(j+"\t");
count2++;
}
j++; //i自增,以便下一個數的判斷
if(count2%3==0){ //每行顯示3個
System.out.println();
}
}
}

}