條件陳述式
閱讀設定
條件陳述式(英文:conditional statement;if... then...)係絕大多數程式語言都會有嘅一種陳述式,功能係視乎情況決定係咪要做某啲運算同採取某啲行動:一個條件陳述式會掕住一柞碼同一句佢要評估嘅條件,當個電腦程式行到個條件陳述式嗰時,如果個條件係真,個程式就會行條件陳述式掕住嗰柞碼(if 「個條件係真」 then 「行個條件陳述式掕住嘅碼」),否則個程式就唔會行嗰柞碼。
句法
[編輯]睇埋:控制流程
條件陳述式典型嘅形態有以下呢啲[1]:
IF..GOTO
,如果 .. 為真,goto 某個位,常見於非結構化嘅程式語言。IF..THEN..(ENDIF)
,如果 .. 為真,做THEN
後面嘅 ..,ENDIF
用途在於標記掕住碼嘅終結。IF..THEN..ELSE..(ENDIF)
,如果 .. 為真,做THEN
後面嘅 ..,否則做ELSE
後面嘅 ..,ENDIF
用途在於標記掕住碼嘅終結。呢個係最常見嘅條件陳述式類型,不過都有啲程式語言唔使用家指明ENDIF
喺邊,而係用空白位等方法嚟斷定邊度係掕住碼嘅終結(例:喺一個 IF 之後,所有掕住碼都要喺最左手邊嗰度有兩個空位),例如機械學習上常用嘅 Python 就係一種啲條件陳述式唔使ENDIF
嘅程式語言。IF..THEN.. ELSE IF .. THEN .. ELSE..(ENDIF)
,一個條件陳述可以嵌套(embedded)喺第個條件陳述裏面-如果 .. 為真,做第一個THEN
後面嘅 ..,否則如果ELSE IF
後面嗰個 .. 為真,做第二個THEN
後面嘅 ..,跟住如此類推。
唔同語言比較
[編輯]Pascal: | Ada: | C: | Shell script: | Python: | Lisp: |
---|---|---|---|---|---|
if a > 0 then
writeln("yes")
else
writeln("no");
|
if a > 0 then
Put_Line("yes");
else
Put_Line("no");
end if;
|
if (a > 0) {
printf("yes");
} else {
printf("no");
}
|
if [ $a -gt 0 ]; then
echo "yes"
else
echo "no"
fi
|
if a > 0:
print("yes")
else:
print("no")
|
(princ
(if (plusp a)
"yes"
"no"))
|
第啲用法
[編輯]比較少見嘅條件陳述式玩法有:
- 有啲程式語言(例子: Fortran),會有所謂嘅「三向」(three-way)條件,測試某個變數數值係正、負、定零嚟決定做乜。
- Perl 有
if
跟when
同unless
。 - Smalltalk 用
ifTrue
同ifFalse
嚟做條件陳述式。
睇埋
[編輯]引咗
[編輯]- ↑ Gabbay, D., Giordano, L., Martelli, A., Olivetti, N., & Sapino, M. L. (2000). Conditional reasoning in logic programming. The Journal of Logic Programming, 44(1-3), 37-74.