條件判斷 授課:林哲嘉 日期:2009/3/4
if, else if , else 對於多重的、連續的條件判斷,我們常使用if , else if陳述。其基本語法為: if(運算式1) 運算式1值為true的執行陳述句; else if(運算式2) 運算式2值為true的執行陳述句; else if(運算式3) 運算式3值為true時的執行陳述句; else 前述運算式均不為true時的執行陳述句;
判斷條件1 判斷條件2 false 敘述主題1 敘述主題2 敘述主題3 其他敘述 true
switch 用來比較字元或者是數值,其基本語法如下。 switch (變數名稱或運算式) { case 符合數字或字元: 陳述句一; break; case 符合數字或字元: 陳述句二; break; default: 陳述三; } 若是判斷字元須加上’ ’
運算式 選擇值1 選擇值2 選擇值3 default 敘述主體1 敘述主體2 敘述主體3 break; 敘述主體 其他敘述
Loop(迴圈)
for 一般都是用來跑已知工作次數的流程 基本語法如下: for (初始變數; 判斷式; 遞增式) { 陳述句一; 陳述句二; }
設定迴圈初值 判斷條件 迴圈主體 設定增減量 其他敘述 true false
while 當面到對一個未知停止時間的流程運作時,就可以使用到while來作此事情 基本語法如下 PS:強制離開迴圈可以使用”break”
設定迴圈初值 false 判斷條件 true 迴圈主體 其他敘述 設定增減量 While與for的流程圖 都是一樣的 他們的差別就是差在 一個有須知道已知的執行次數,所以一般在選擇使用for或者while最大的考量就是在於知不知道執行的次數
do-while 跟while是相同的功用的,他們的差別只有在while是先判斷條件式在作主體,do-while則是先做主體在去看判斷式 基本語法如下: do { 陳述句一; 陳述句二; .... } while(條件式); While與do-while的差別 先做再說!! 先斬後奏
設定迴圈初值 迴圈主體 設定增減量 其他敘述 判斷條件 true false
亂數的使用介紹(rand) 在某些情況下(特別是設計遊戲時),我們會需要使用到亂數,在 C 語言中提供了一個 rand() 函數可以讓我們取得一個亂數,其用法如下。 rand()會回傳出一個0~32767之間的數 若我們把rand() % 10 ->會取出0~9之間的整數 % (mod)我們稱為取餘數的動作 若光只有rand()不管你的程式執行多少次所取出來的值都會一樣 所以可以多加上srand()來改變一開始的亂數值 srand()需要一個參數來當種子 程式重複執行數次之後,會發現所得到的亂數是一樣的,這是因為它由上一個數值產生出下一個亂數,而一開始系統都是 0,所以每次產生出來的亂數才會一樣。 srand()一般都用目前時間來當種子 -> srand( time(NULL) ) 必須要先include <time.h>
Lab2 寫一個猜數字的小遊戲 前置動作 1. 必須給訂一個初始範圍0~100,先行印出答案以便助教測試檢查。 2. 答案必須要是用亂數取得,每次重新取亂數皆要不同。 程式執行 1. 當user輸入一個值時,需要回應給user一個縮小的範圍。 2. 直到user猜對為止。
Lab2
Hw2 利用 * 來印出菱形圖案 User會輸入一個整數來決定菱形的大小(決定菱形的中間最寬的長度) 限定輸入的是奇數,表示最大的長度為此輸入的奇數。 若輸入的是偶數必須要求使用者重新輸入。 基本型:填滿的菱形 進階型:中空菱形(加分題) 進階版:兩個中空菱形(加分題)
Hw2 – 基本型
Hw2 – 進階型(加分題)
Hw2 –進階型(加分題)
不能夠直接用printf直接畫成 int main() { int x; scanf("%d", &x); //x = 5 or 6 printf(" * \n"); printf(“ * * \n"); printf(“* *\n"); system("pause"); return 0; }