while
語法 : while(條件式){}
while的初始值要設於while之上,若沒有步進值, 則會進入無窮迴圈,如下所示
底下會進入無窮迴圈 int i=0; while(i<10){ printf("%d", i); }
計算1+2+3…+100
int sum=0; int i=1; while(i<=100){ sum+=i; } printf("1+2+3+...+100=%d", sum);
break
可以在某個條件時,退出迴圈
int sum=0;
int i=1;
while(i<=100){
if(i>101)break;
sum+=i;
}
printf("1+2+3+...+100=%d", sum);
continue
在某個條件下,忽略下面的程式碼,直接回 while。底下代碼只會列印 2, 4, 6, 8, 10
int i=1; while(i<=100){ if(i%2==1)continue; printf("%d",i); }
for
語法 : for (初始值;判斷式;步進值)
第一次執行時 : 先執行啟始值,再執行條件 第二次及以後 : 先執行進步值,再執行條件 假如跑了n圈 啟始值 : 1次 進步值 : n-1次 條件 : n+1次,最後一次不立,不進入迴圈
以1+2+3+…+100為舉例
int sum=0; for (int i=1;i<=100;i++){ sum+=i; } printf("1+2+3+...+100=%d", sum);
Exam1
1 2 3 …. 100
public static void main(String[] args) { for (int i=;i<=100;i++){ printf("%d\n", i); } }
Exam2
列印 1 2 3 4 5 6 7 8 9 10
for (int i=1;i<10;i++){ printf("%d ", i); } printf("\n");
Exam3
列印 * * * * *
for (int i=0;i<5;i++){ printf("* "); } printf("\n");
Exam4
列印 * * * * * * * * * * * * * * *
for (int i=0;i<3;i++){ for (int j=0;j<5;j++){ print("* "); } printf("\n"); }
Exam5
列印 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81
for (int i=1;i<=9;i++){ for (int j=1;j<=9;j++){ printf("%2d ", i*j); } printf("\n"); }
%2d : 靠右對齊,%02d左邊補0
Exam6
* * * * * * * * * * * * * * *
for (int i=1;i<=5;i++){ for (int j=1;j<=i;j++){ printf("* "); } printf("\n"); }
Exam7
* * * * * * * * * * * * * * *
for (int i=1;i<=5;i++){ for (int j=1;j<=6-i;j++){ printf("* "); } printf("\n"); }
Exam8
* * * * * * * * * * * * * * *
for (int i=1;i<=5;i++){ for (int j=1;j<=5-i;j++){ printf(" "); } for (int j=1;j<=i;j++){ printf("* "); } printf("\n"); }
Exam9
< < < < < > > > > > < < < < < > > > > > < < < < <
for (int i=1;i<=5;i++){ for (int j=1;j<=5;j++){ if(i%2==0) printf("> "); else printf("< "); } printf("\n"); }
Exam10
A A A A A B B B B B C C C C C A A A A A B B B B B
for (int i=1;i<=5;i++){ for (int j=1;j<=5;j++){ if(i%3==1) printf("A "); else if (i%3==2) printf("B "); else printf("C "); } printf("\n"); }
Exam11
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
int start=65; for (int i=start;i<start+26;i++){ printf("%c ", i); } printf("\n); start=97; for (int i=start;i<start+26;i++){ printf("%c ", i); } printf("\n");
for 迴圈易混洧的觀念
初使值後,再檢查判斷式,若不成立,連第一次也不會執行
for (i=0;i<10;i=i+2){cout<< i;}印出0,2,4,6,8, 但離開迴圈後i是10。若int i是宣告在for 之內,則迴圈外的i即消失,印出i即是錯誤