---
###### tags: `課程`
---
一個小小的複習
===
----
## 迴圈是幹嘛的= =
----
## For VS. While
For-已知重複幾次,只要判斷執行幾次了就知道該結束了沒
while-不知道重複幾次,藉由判斷某個條件來決定該結束了沒
----
## for
1. 宣告並設定起始值
2. 檢查條件
3. 每執行一次迴圈後的變動
```cpp=
for ( int i=0 ; i<10 ; i++ ) //i從0開始;檢查是否還<10;每次加1
{
//要重複執行的程式
}
```
----
## 小試身手!
輸入一個正整數 N,代表要開始倒數的秒數。
輸出從 N 到 0 之間的所有整數,兩個數字之間請空一格(不是換行)。
____
## code
```cpp=
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=n;i>=0;i--){
cout<<i<<" ";
}
return 0;
}
```
----
## 小試身手!
輸入一個n,輸出1至n的和
----
## code
```cpp=
int n, i, answer;
cin>>n;
answer = 0; //和一開始為0
for(i=1;i<=n;i++)
{
answer = answer+i; //加上計數器的值
}
cout<<answer<<endl;
```
---
## while
- 條件
```cpp=
while( ) //放入迴圈執行的條件
{
//要重複執行的程式
}
```
----
## 小試身手!
斑斑發明了一種倍倍儲蓄法,只要每天讓自己的存款倍增,很快就能達到目標的存款
輸入一開始的金額money,以及目標的金額goal
輸出將money一直倍增直到超過goal時的金額
----
## code
```cpp=
int money, goal;
cin >> money;
cin >> goal;
while(money<goal) //金額還沒達到目標時
{
money = money*2; //將錢加倍
}
cout << money << endl;
```
----
## 巢狀迴圈
輸入n和m,輸出n行的m個飄號
例如n為3,m為5時,輸出:
@@@@@
@@@@@
@@@@@
----
## code
```cpp=
for(j=1;j<=n;j++)
{
for(i=1;i<=m;i++)
{
cout<<"@";
}
cout<<endl;
}
```
----
## 小伸試手!
輸入n,輸出高和寬為n的等腰直角三角形
例如n為4時,輸出:
@
@@
@@@
@@@@
----
## code
```cpp=
for(j=1;j<=n;j++)
{
for(i=1;i<=j;i++) //注意,這邊的檢查值改成i<=j囉
{
cout<<"@";
}
cout<<endl;
}
```
----
## 補充語法
continue-直接進入下一圈
break-直接跳出迴圈
---
## 陣列
----

----
輸入一個n來代表接下來有幾個數字要放入陣列內
```cpp=
int a[100];
int n;
cin >> n;
for(int i=0;i<n;i++){ //從0號到n-1號都讀進來
cin >> a[i];
}
```
----
## 伸手小試!
輸入一個n以及n個數字
請輸出奇數和偶數分別有幾個
(n<=50)
----
## code
```cpp=
int n;
int a[50];
cin >> n;
for(int i=0;i<n;i++){
cin >> a[i];
}
int odd=0;
int even=0;
for(int i=0;i<n;i++){
if(a[i]%2==1)
odd++;
else
even++;
}
cout << odd << " " << even << endl;
```
----
## 二維陣列
----
| arr[i][j] | 0 | 1 | 2 |
| -- | -- | -- | --|
| 0 | arr[0][0] | arr[0][1]|arr[0][2]|
| 1 | arr[1][0] | arr[1][1]|arr[1][2]|
| 2 | arr[2][0] | arr[2][1]|arr[2][2]|
| 3 | arr[3][0] | arr[3][1]|arr[3][2]|
----
## 試手伸小!
輸出九九乘法表(要用陣列先存起來)
----
```cpp=
int arr[9][9];
for(int i = 0; i < 9; i++)
for(int j = 0; j < 9;j++)
arr[i][j] = i*j;
for(int i = 0; i < 9; i++){
for(int j = 0; j < 9; j++)
cout << arr[i][j] << ' ';
cout<<endl;
}
```
----
{"metaMigratedAt":"2023-06-15T17:33:22.600Z","metaMigratedFrom":"Content","title":"一個小小的複習","breaks":true,"contributors":"[{\"id\":\"7d4f22ac-9934-417b-aa5e-c76934d4fc98\",\"add\":5,\"del\":3},{\"id\":\"82f46fc6-f9dd-4e98-8fe8-19fda0dc8ba3\",\"add\":2456,\"del\":33}]"}