迴圈

戴瑢溱

目錄

概念簡介

概念簡介什麼是迴圈?

迴圈(LOOP)是一種程式結構, 可以讓某段程式碼根據一定的條件重複執行, 目的是為了讓程式碼更簡潔、有效率.

概念簡介迴圈的種類

  • 計數迴圈(For迴圈)― 重複固定次數
    • 印出活動傳單30張
    • 罰抄「我不會再熬夜做簡報了」50次
  • 條件迴圈(While迴圈)― 條件符合時重複執行
    • 我還有作業要寫時, 我就會繼續寫作業.
    • 老師還在教室時, 我就要表現得很乖巧.

情境模擬 : 以背英文單字為例

  • 計數迴圈: 一次背一個單字, 一直背直到背完全部的單字.
  • 條件迴圈: 當我還沒背熟單字, 我就會再看一次直到背起來.

計數迴圈

條件迴圈

打開課本

背一個單字

結束

重複執行直到

背完所有單字

背一個單字

背起來了嗎?

結束

背起來了

還沒背起來

再看一次

FOr迴圈

for迴圈

for(初始式; 判斷式; 更新式){
	執行內容;
}
for(int i = 1; i <= 5; i++){
	cout << i << " ";
}
for(int i = 5; i >= 1; i--){
	cout << i << " ";
}

輸出:  1 2 3 4 5

輸出:  5 4 3 2 1

for迴圈

for(int i = 1; i <= 5; i++){
	cout << i << " ";
}
for(int i = 5; i >= 1; i--){
	cout << i << " ";
}

i值

i <= 5

i++

第1次

第2次

第3次

第4次

第5次

第6次

i = 1

i = 2

i = 3

i = 4

i = 5

i = 6

第1次

第2次

第3次

第4次

第5次

第6次

1 -> 2

2 -> 3

3 -> 4

4 -> 5

5 -> 6

i值

i >= 1

i--

第1次

第2次

第3次

第4次

第5次

第6次

i = 5

i = 4

i = 3

i = 2

i = 1

i = 0

第1次

第2次

第3次

第4次

第5次

第6次

5 -> 4

4 -> 3

3 -> 2

2 -> 1

1 -> 0

執行5次

執行5次

輸出:

1

2

3

4

5

輸出:

5

4

3

2

1

* i++  ->  i = i + 1

* i--  ->  i = i - 1

初始式         判斷式       更新式

初始式         判斷式       更新式

for迴圈

#include <iostream>
using namespace std;
int main() 
{
    for(int i = 1; i <= 10; i++){
        cout << "ZSISC" << endl;
    }
}

答案 :

練習題1 :  使用for迴圈輸出「ZSISC 10次

2分鐘

for迴圈

#include <iostream>
using namespace std;
int main() 
{
    int sum = 0;
    for(int i = 1; i <= 50; i++){
        sum = sum + i;
    }
    cout << sum << endl; //1275
}

練習題2 :  使用for迴圈計算出1~50的總和

答案 :

2分鐘

While迴圈 & Do-While迴圈

While迴圈 

while(條件式){
	執行內容;
}
int a = 1;
while(a <= 5){
    cout << a << " ";
}
int a = 1;
while(a <= 5){
    cout << a << " ";
    a++;
}

輸出:  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

輸出:  1 2 3 4 5

與for迴圈不同

需在迴圈前先定義變數​

為了避免無窮迴圈​

每跑一次迴圈a遞增1

無窮迴圈

While迴圈 

int a = 1;
while(a <= 5){
    cout << a << " ";
    a++;
}

進入while迴圈

a <= 5 ?

成立

cout << a << " " ;
a++ ;

條件是否再次成立?

int a = 1 ;

不成立

離開迴圈繼續執行

第2次 a = 2

第3次 a = 3

第5次 a = 5

第4次 a = 4

第6次 a = 6

第1次  a = 1

不成立 離開迴圈

輸出:

1

2

3

4

5

1 -> 2

2 -> 3

3 -> 4

4 -> 5

5 -> 6

#include <iostream>
using namespace std;
int main()
{
    int a = 1;
    while(a <= 10) {
        cout << "學姐好正" << endl;
        a++;
    }
}

答案 :

練習題1 :  使用while迴圈輸出「學姐好正 10次

While迴圈 

2分鐘

#include <iostream>
using namespace std;
int main()
{
    int a = 1;
    int sum = 0;
    while(a <= 100){
        sum = sum + a;
        a++;
    }
    cout << sum << endl; //5050
}

答案 :

練習題2 :  使用while迴圈計算出1~100的總和

While迴圈 

2分鐘

do-While迴圈 

#include <iostream>
using namespace std;
int main(){
    int a = 1;
    do{
        cout << a << " ";
        a++;
    }while (a <= 5);
}

進入do-while迴圈

成立

條件是否再次成立?

int a = 1 ;

不成立

離開迴圈繼續執行

第2次

第3次

第5次

第4次

第1次

不成立 離開迴圈

輸出:

1

2

3

4

5

a <= 5 ?

cout << a << " " ;
a++ ;

1 -> 2

2 -> 3

3 -> 4

4 -> 5

5 -> 6

巢狀迴圈

巢狀迴圈

  • 巢狀迴圈是指在一個迴圈內部再包含另一個或多個迴圈.
  • 外層迴圈執行一次, 內層迴圈會完整執行直到結束.
  • 巢狀迴圈可以有多層, 常用於處理多維結構或重複計算.
#include <iostream>
using namespace std;
int main()
{
    for(int i = 1; i <= 9; i++){
        for(int j = 1; j <= 9; j++){
            cout << i << "*" << j << "=" << i*j << " ";
        }
    	cout << endl;        
    }
}

答案 :

巢狀迴圈

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

4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
...

1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9

2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18

3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27

練習題1 :  印出九九乘法表

2分鐘

感謝聆聽 !

迴圈

By ariel tai

迴圈

  • 36