--- ###### 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-直接跳出迴圈 --- ## 陣列 ---- ![](https://i.imgur.com/uEJ1RAG.png) ---- 輸入一個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}]"}
    208 views
   Owned this note