# 筆試專區 --- 首頁:https://reurl.cc/6DpOmr --- ## 運算&符號 ### 常見符號 | 符號 | = | == | != | && | \|\| | % | |:----:|:----:|:----:|:------:|:-----------:|:------------:|:------:| | 舉例 | a=5 | a==5 | a!=1 | a>0 && a<10 | a>5 \|\|a<-3 | a%10 | | 意思 | 賦值 | 判斷 | 不等於 | 且(and) | 或(or) | 取餘數 | ### 常見型態 | 型態 | int | float | double | string | char | bool | |:----:|:----:|:------:|:------------:|:-------:|:----:| ------ | | 舉例 | 5 | 5.5 | 5.5555555555 | "Hello" | 'H' | true | | 意思 | 整數 | 浮點數 | 長小數 | 字串 | 字元 | 布林值 | ### 常見運算縮寫 | 意義 | i=i+1 | i=i-1 | i=i*2 | i=i\/2 | i=i%2 | | -------- |:-----------------:|:----------------:|:-----:|:-----:|:-----:| | 等價寫法 | +\+i , i++ , i+=1 | --i , i-- , i-=1 | i*=2 | i\/=2 | i%=2 | ### = VS == | | = | == | |:--------:|:--------------------:|:----------------------:| | 意義 | 執行賦值動作 | 執行比較判斷 | | 範例 | a=5 | a==5 | | 範例解釋 | 將數字5的值丟給變數a | 判斷變數a的值是否等於5 | ### i++ VS ++i | | i++ | ++i | | ---- |:----:| ---- | | 意義 | i先使用再加1 | i先加1再使用 | 在for迴圈的計數或普通的變數累加中沒有差別,通常在while迴圈中常用來比較 - i++ ```cpp= int i=5; while(i--){ cout<<i<<'\n'; } ``` >4 >3 >2 >1 >0 >共執行5次 ++解釋++ while迴圈中先判斷i值再-1,故執行流程為: 判斷i=5->i=i-1->i=4->印出4 判斷i=4->i=i-1->i=3->印出3 判斷i=3->i=i-1->i=2->印出2 判斷i=2->i=i-1->i=1->印出1 判斷i=1->i=i-1->i=0->印出0 判斷==i=0==->==離開迴圈== - ++i ```cpp= int i=5; while(--i){ cout<<i<<'\n'; } ``` >4 >3 >2 >1 >共執行4次 ++解釋++ while迴圈中先將i值-1再判斷,故執行流程為: i=5->i=i-1->判斷i=4->印出4 i=4->i=i-1->判斷i=3->印出3 i=3->i=i-1->判斷i=2->印出2 i=2->i=i-1->判斷i=1->印出1 i=1->i=i-1->判斷==i=0==->==離開迴圈== ## 判斷式 注意哪些東西在if括號裡、條件何時成立、判斷式的架構 - Q1:求最後的輸出 ```cpp= #include<iostream> using namespace std; int main(){ int a=5; if(a==5){ a=4; } else if(a==4){ cout<<"a="<<a<<'\n'; a=3; } else{ a=6; cout<<"a="<<a<<'\n'; } if(a==4){ a=6; } cout<<"a="<<a<<'\n'; return 0; } ``` - A1: >a=6 - 解釋: 一開始變數a的值為5 ==(a=5)== 接著判斷(a=\=5)成立,故變數a的值重設為4 ==(a=4)== ++接著跳到第16行++判斷(a==4)成立,故將變數a的值設為6 ==(a=6)== 最後輸出a=6 - Q2:求出最後的輸出 ```cpp= #include<iostream> using namespace std; int main(){ int a=5; if(a==5){ a=4; } if(a<=4){ cout<<"a="<<a<<'\n'; a=3; } else{ a=6; cout<<"a=6"<<'\n'; } if(a>=4){ a=6; } cout<<"a="<<a<<'\n'; return 0; } ``` - A2: > a=4 > a=3 - 解釋: 一開始變數a的值為5 ==(a=5)== 接著判斷(a=\=5)成立,故變數a的值重設為4 ==(a=4)== 接著判斷(a<=4)成立,故輸出a=4,並將變數a的值設為3 ==(a=3)== ++接著跳到第16行++判斷(a>=4)不成立,故最後輸出a=6 ## 迴圈 注意哪些東西在迴圈裡、迴圈條件何時成立、何時離開迴圈 - 判斷輸出 ```cpp= for(int i=1;i<=9;i++){ for(int j=i;j<=9;j++){ cout<<'*'; } cout<<'\n'; } ``` - 輸出 >\********* >\******** >\******* >\****** >\***** >\**** >\*** >\** >\* - 解釋: 雙層迴圈的問題中,內層迴圈變動較快,外層迴圈變動較慢。 以此題為例,內層迴圈控制每列(每橫排)幾個星星,外層迴圈控制總行數(共9行)。 ## 最後的一招 真的不會就把程式貼code::block上跑跑看ㄅ 啊但是,如果他沒有加程式架構(程式起手式)要記得加一下欸(主站第一頁有寫) ```cpp= #include<iostream> using namespace std; int main(){ //老師的題目 return 0; } ``` 嘎油~