for迴圈
- for(定義或初始化; 條件表示式; 調整表示式){}
- while和if的結合體: 迴圈判斷執行迴圈體; 有些語言還可以配合to語句
三個表示式可以按需要省略, ;卻不能省略。for( ; ; ) == while(1/True); --程式可讀性
///: C:for迴圈巢狀
// 分析內部作為整體再外部迴圈,分步乘法
// 執行順序為:一層外部所有的內部到二層外部
#include <stdio.h>
int main() {
int i,j;
for(i=0; i<10; i++) {
for(j=0; j<10; j++) {
printf("i= %d, j= %d\n", i, j); // 10*10 次迴圈
}
}
}
///: C:for迴圈條件調整表示式
// 將for作為if-while迴圈分析
#include <stdio.h>
int main() {
int i;
for(i=1; i<100; i++) {
// Equivalent: int=1;while(i<100) {i++;}
break; //Not-break; i= 100;
}
printf("i= %d\n", i); //i= 1
}
///: C:for實時變數
// 實時變數;在需要的地方定義的變數
// 允許定義和初始化-std=C99, -std=gnu99, 作為實時變數調整作用域只在for程式塊
#include <stdio.h>
int main() {
for(int i=0, j=10; i<j; i++,j--) {
printf("%d\n", i);
}
// 外部無法訪問
}
gcc -std=c99 C\for實時變數.c
///: C:for迴圈與while的Equivalent Differences
// 計數器在for語句對比while優先順序大
#include <stdio.h>
int main() {
int i;
i=0;
while(i<100) {
if(i % 2) {
continue;
}
i++; // 在continue下計數器並不會執行
}
// for(i=0; i<100; i++) {
// if(i % 2) {
// continue;
// }
// }
return 0;
}
///: C:for遍歷/接收陣列
// i=0; 下階不越界。 i+1, 定義數對應下階
#include <stdio.h>
#define NUM 10
int main() {
int s[NUM];
int i, sum=0;
for(i=0; i<10; i++) {
printf("請輸入第%i位同學的成績: ", i+1);
scanf("%d", &s[i]);
sum += s[i];
}
printf("成績錄入完成, 該次考試的平均分是: %2.f\n", (double)sum / NUM);
return 0;
}