C語言條件敘述:
概念簡分為單路選擇、雙路選擇、跟多路選擇。
- if (單路選擇)語法格式 :
if ( 判斷條件 C1 )
{
符合條件欲執行工作
}
- 如果符合判斷式C1,則執行工作區1,
繼續執行工作區2.
- 如果不符合判斷式C1,跳過工作區1,繼續執行工作區2.
- 練習1:請輸入下列程式
- 作業1: 輸入大於60的數,並寫下結果。
- 作業2: 輸入小於60的數,並寫下結果。
- 作業3.
- 流程圖
- 條件的判斷: 比較運算子(Comparison Operator)
算子 |
範例 |
結合 |
備註 |
> |
a > b |
比較a大於b |
|
< |
a < b |
比較a小於b |
|
== |
a
== b |
比較a,b是否相等 |
|
!= |
a
!= b |
比較a,b是否不相等 |
|
>= |
a >=
b |
比較a大於或等於b |
誤:a=>b |
<= |
a <= b |
比較a小於或等於b |
誤:a=<b |
a, b 位置可以是單一變數、數值、運算式。
- if - else 語法格式 (雙路選擇):
if ( 判斷條件C1 )
{
符合條件執行程式區一;
...
}
else
{
不符合條件之程式區二;
...
}
- if - else if - else 語法格式(多重選擇):
if ( 條件C1 )
{
符合C1之執行區1;
}
else if ( 條件C2 )
{
符合C2之執行區2;
}
else if ( 條件C3 )
{
符合C3之執行區3;
}
...
else
{
如果都沒有符合上述的判斷條件時,
執行區;
}
運作流程:
若符合條件C1,則執行程式區1後,退出整個判斷;
若不符合條件C1,則接著至判斷條件C2,
若符合條件C2,則執行程式區2後,退出判斷;
不符合條件C2,則繼續判斷條件C3;
依此類推,
最後,若都不符合上述所有條件時,
則執行else內的
執行工作,然後退出判斷。
- 範例練習:
- 實作1: 請問當grade=101時,結果為何?
- 實作2: grade = -1時,你的程式輸出結果為何?
- 實作3:
如果分數範圍不在0~100,程式要求要輸出Error Input,
程式又須如何修改(code紀錄至講義)。
- 條件的結合: 邏輯運算子(Logical Operator)( A, B為條件
)
算子 |
範例 |
結合 |
備註 |
&& |
A
&& B |
將
A, B
條件作 And 運算 |
A 且
B |
|| |
A ||
B |
將
A, B
條件作 OR
運算 |
A 或
B |
! |
! A |
將
A
條件作 Not 運算 |
非 A |
- 實作:
1. 二元運算子在 (90 ≦ score ≦ 100) 的寫法.
2. if(90<=score<=100) ?
- 實作練習
- 求體指數(Body Mass Index, BMI)
BMI=(體重,Kilograms)/(身高的平方,Meters)
標準:
Below 18.5(含) 太瘦(Underweight)
18.5–25.0(含) 正常(Normal)
25.0–30.0(含) 過重(Overweight)
30.0–35.0(含) 肥胖(Obese)
35.0– 過度肥胖(Too Fat)
================================
Input Height(cm):170.0
Input Weight(kg):60.0
bmi=20.76
正常(Normal)
================================
- 輸入一正整數,判斷輸入為奇數,或是偶數!
Input a number:7
7 is odd number.
Input a number:6
6 is even number.
- 張三是一個農夫,每日上山砍柴,他為了要能將砍回來的木條堆棧起來,
必須將不同長度的木條排成三角形,假如木條的長度都是整數,
請寫一個程式幫助張三判斷,
每次拿的三條木條能否構成三角形?
輸出: 可構成三角形(Yes), 不能構成三角形(No)
Input triangle lengths:6
3 4
Yes
Input triangle lengths:1 3 1
No
- 請寫一個寫程式判斷,西元某一年,是不是閏年(leap year)?
說明:地球公轉的平均週期365.2422日,早在埃及時期,就知道一年約有365.25日,
到了羅馬凱薩大帝,規定每四年一閏(就是閏年是366日),這樣一來可彌補這個差異。
但0.2422和0.25仍有誤差,過了1500年後,發現誤差大到影響天數,
故教皇Gregory採用天文學家建議,訂出後來使用的格里曆閏年,規則如下:
西元年:
1.不可被4整除,為平年。
2.可被4整除,且不可被100整除,為閏年。
3.可被100整除,且不可被400整除,為平年。
4.可被400整除,為閏年。
輸出:是閏年輸出 Yes , 否則輸出 No
Input year:
1972
1999
2020
Output:
Yes
No
Yes
- 判斷語法的精簡式(三元運算子) :
( 判斷運算式 ) ? ( 運算1 ) : ( 運算2 );
此判斷運算式Condition,可寫成一個Boolean運算式
若判斷條件運算為(true),則執行運算式1;若為不符合(false),則執行運算式2。
範例:
var = x ? y : z;
等同於下面:
if( x ) var = y;
else var = z;
在C的判斷語法中,判斷條件若不等於零時,運算結果為真(true).
例子:
if( i>j )
k = i;
else
k = j;
可寫成:
k = ( i>j ) ? i : j
|