If 指令
来自GeoGebra Manual
本頁為官方文件,一般使用者無法修改,若有任何誤謬,請與官方聯絡。如欲編輯,請至本頁的開放版。
- If( <條件式>, <則> )
- 若 <條件式> 為 true(真),<則> 執行(運算式、物件或指令);若為 false(假),會產生未定義物件(或不產生任何物件)。
- 範例:
- 假設 n = 3。
If(n==3, x + y = 4)
會產生一條直線 x + y = 4,原因是 n 確實等於 3 ,符合條件。 - 假設 n = 4。
If(n==3, x + y = 4)
無法定義物件,原因是 n 不等於 3,並不符合條件。
- 假設 n = 3。
- If( <條件式>, <則>, <否則> )
- 若 <條件式> 為 true(真),<則> 執行(運算式、物件或指令),<否則> 執行(其他運算式、物件或指令)。若在 <則> 和 <否則> 區塊中填入物件,兩個物件必須是同一種類型。
- 範例: 假設 n 為一數值。
If(n==3, x + y = 4, x - y = 4)
在 n = 3 時產生一條直線 x + y = 4;在 n 不等於 3 時則為另一條直線 x - y = 4。 - If( <條件式 1>, <則 1>, <條件式 2>, <則 2>, ... , <否則(選用)> )
- 當 <條件式 1> 符合時,<則 1> 執行;當 <條件式 2> 符合時,<則 2> 執行;…依此類推。若沒有任何一個 <條件式> 符合,且 <否則> 區塊有被填入,就會執行 <否則>。除上述之外的情況會回傳未定義物件。
- 範例:
If(a ≟ 1, "Matthew", a ≟ 2,"Larry", a ≟ 3, "Vivian", "Alex")
當 a=1 時回傳文字 "Matthew";當 a=2 時回傳文字 "Larry";當 a=3 時回傳文字 "Vivian";當 a 為其他值時回傳文字 "Alex"。 - 備註: 此語法無法在運算區使用。
條件式函數
- If 指令可用來產生「條件式函數」,這種函數也可以當做是一般的函數,放到其他可接受函數當做參數的指令中再做處理,例如微分指令 Derivative、積分指令 Integral,還有求交點指令 Intersect 等等。
- 範例:
f(x) = If(x < 3, sin(x), x^2)
產生一個分段函數(piecewise function):當 x < 3 時為 sin(x);當 x ≥ 3 時為 x2。f(x) = If(0 <= x <= 3, sin(x))
產生一個函數:當 x 介於 0 和 3 之間時為 sin(x);x在其他範圍時未定義。
- 備註: 另一種比較簡短的語法為
f(x) = sin(x), 0 <= x <= 3
。
f(x) =If(x<-1,x²,-1<=x<=1,1,-x²+2)
產生一個分段函數 f(x) = \left\{\begin{aligned}{} x^{2}& , &x < -1\\ 1& ,& -1 ≤ x ≤ 1\\ -x^{2} + 2& , &\text{其他範圍} \end{aligned}\right. 。
- 備註:
- If(condition, f(x), g(x)) 的微分為 If(condition, f'(x), g'(x))。
- 請參閱真假值瞭解在條件式中常用的運算符號。
在程式腳本中使用 If 指令
- If 指令在程式腳本中,適合用在不同的條件下執行特定動作。
- 範例: 假設 n 為一數值且 A 為一點。指令
If(Mod(n, 7) == 0, SetCoords(A, n, 0), SetCoords(A, n, 1))
會根據給定的條件來更改 A 點坐標。以這個案例來說,更好的寫法為SetCoords(A, n, If(Mod(n, 7) == 0,0,1))
。 - 備註: If 指令僅接受物件或程式碼指令作為引數,不接受指定敘述(assignment)。例如
b = If(a > 1, 2, 3)
是正確語法,但If(a > 1, b = 2, b = 3)
這樣的語法會產生錯誤。
Comments
同時限制函數的定義域與值域[编辑]
- 範例:
f(x) = If[ 0<x^2<3,x^2]
將值域限制在 0 與 3 之間。f(x) = If[ -2<x<3∧-4<tan(x)<4,tan(x)]
將定義域限制在 -2 到 3,值域限制在 -4 到 4 之間。