If
予備知識
- Ifは,手続き型プログラミング構造であり,その評価の分岐は,指定された条件の真の値によって決定される.Ifは通常If[cond,t,f]のように,条件と2つの追加の引数を取る.ここで t と f はそれぞれ,条件がTrueとFalseの場合に評価される.Ifは,If[cond,t,f,u]のように,追加の3つ目の引数を取ることもある.ここで u は,指定された条件が明示的にTrueでも明示的にFalseでもない場合に,評価が行われるようにする.最後にIfは,If[cond,t]のように1つだけ追加の引数を取ることもある.この場合,f の値はNullであるとされる.
- 効率を図るため,Ifは関連のある引数のみを評価する.例えば,If[cond,t,f,u]における条件がTrueである場合には,t だけが評価され,f と u は評価されない.
- ConditionalExpressionは,与えられた条件がTrueの場合にだけ式を表す関連の記号的構文である.Ifを一般化するその他のより柔軟なプログラミング構造には,WhichとSwitchがある.引数の値によって評価を行う数学関数には,BooleとPiecewiseがある.Conditionは,検定結果の評価がTrueになるときにだけマッチするパターンである.TrueQは,Ifの特殊形で,式が明示的にTrueである場合にはTrueを,それ以外の場合にはFalseを返す.
例題
すべて開く すべて閉じる例 (1)
abs[x_] := If[x < 0, -x, x]abs /@ {-1, 0, 1}スコープ (4)
評価 (3)
記号変換 (1)
f = If[Round[x] > x, x, -x]PiecewiseExpandを使って区分関数が正規形になるようにする:
PiecewiseExpand[f, 0 < x < 5]Reduce[f < 5 && 0 < x < 10, x, Reals]Integrate[f, {x, 0, 10}]D[f, x]Plot[f, {x, -2, 2}]一般化と拡張 (1)
Ifは条件を表す文として使うことができる:
x = -2;
If[x < 0, y = -x, y = x];yy = If[x < 0, -x, x]特性と関係 (4)
x = 1;
If[x ≠ 0, 1 / x, Indeterminate]sign[x_] := If[x < 0, -1, 1]sign /@ {-1, 0, 1, I}sign2[x_ /; x < 0] := -1
sign2[x_ /; x ≥ 0] := xsign2 /@ {-1, 0, 1, I}ネストしたif-then-elseifチェーンではなくWhichを使う:
cut[x_] := If[x < -1, -1, If[x < 1, x, 1]]cut /@ {-2, -1, 0, 1, 2}cut2[x_] := Which[
x < -1, -1,
x < 1, x,
True, 1]cut2 /@ {-2, -1, 0, 1, 2}PiecewiseExpandを使ってIfをPiecewiseに変換する:
PiecewiseExpand[If[c, a, b]]PiecewiseExpand[If[If[c1, a1, b1], a, b]]PiecewiseExpand[If[c, If[c2, a2, b2], b]]テクニカルノート
-
▪
- 関係演算子と論理演算子 ▪
- 条件子
関連するガイド
-
▪
- 条件文 ▪
- 手続き型プログラミング ▪
- 言語の概要
履歴
1988 で導入 (1.0)
テキスト
Wolfram Research (1988), If, Wolfram言語関数, https://reference.wolfram.com/language/ref/If.html.
CMS
Wolfram Language. 1988. "If." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/If.html.
APA
Wolfram Language. (1988). If. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/If.html
BibTeX
@misc{reference.wolfram_2026_if, author="Wolfram Research", title="{If}", year="1988", howpublished="\url{https://reference.wolfram.com/language/ref/If.html}", note=[Accessed: 01-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_if, organization={Wolfram Research}, title={If}, year={1988}, url={https://reference.wolfram.com/language/ref/If.html}, note=[Accessed: 01-November-2026]}