第四章 迴圈

      在〈第四章 迴圈〉中尚無留言

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即是錯誤

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *