Help:条件文
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

と書き、使用例 = 出力 (理由)と記しています。
expr

expr 関数は、数式の演算を行います。文法は、{{#expr: <数式> }}
文字列形式

数値として扱える文字列以外は取り扱えません。一部はFormatnumで数値に変換が可能。詳細は「mw:Help:Magic_words/ja#整形」を参照
数値形式

サポートしている数値形式は、

形式例
数字のみ1234567890{{#expr: 1234567890 }} = 1234567890
カンマ付き数字1,234,567,890Formatnumを使用することで可能
{{#expr: {{Formatnum:1,234,567,890|R}} }} = 1234567890
小数123.456{{#expr: 123.456 }} = 123.456
分数1 + 2/3{{#expr: 1 + 2/3 }} = 1.6666666666667
指数表記123.456e7{{#expr: 123.456e7 }} = 1234560000
指数表記123.45678e12{{#expr: 123.45678e12 }} = 1.2345678E+14
指数表記123.45678E-12{{#expr: 123.45678E-12 }} = 1.2345678E-10
指数表記1.23456×109乗算演算子とべき乗演算子を使用することで可能
{{#expr: 1.23456 * 10^9}} }} = 1234560000

演算子の優先順位

サポートしている演算子の優先順位は、

演算子演算例
( )優先{{#expr: (30 + 7) * 7 }} = 259
+正符号{{#expr: 30 * +7 }} = 210
-負符号{{#expr: 30 * -7 }} = -210
not論理否定{{#expr: not 0 * 7 }} = 7
{{#expr: not 30 * 7 }} = 0
*乗算{{#expr: 30 * 7}} = 210
/除算(div と全く同じ){{#expr: 30 / 7}} = 4.2857142857143
div除算(/ と全く同じ){{#expr: 30 div 7}} = 4.2857142857143
mod剰余{{#expr: 30 mod 7}} = 2
+加算{{#expr: 30 + 7}} = 37
-減算{{#expr: 30 - 7}} = 23
round四捨五入
round の右に小数点以下の桁数を入れる{{#expr: 30 / 7 round 7}} = 4.2857143
=等号、左右は等しい{{#expr: 30 = 7}} = 0[正しくない]
<>不等号、左右は等しくない{{#expr: 30 <> 7}} = 1[正しい]
!=不等号、左右は等しくない、
排他的論理和{{#expr: 30?!= 7}} = 1
<小なり、左は右より小さい{{#expr: 30 < 7}} = 0
>大なり、左は右より大きい{{#expr: 30 > 7}} = 1
<=左は右以下{{#expr: 30 <= 7}} = 0
>=左は右以上{{#expr: 30 >= 7}} = 1
and論理積{{#expr: 30 and 7}} = 1
or論理和{{#expr: 30 or 7}} = 1

取り扱える他の演算子

この他、以下の演算子も使用できます。

演算子演算例
^
べき乗{{#expr: 4^2}} = 16
{{#expr: 2^7}} = 128
ln自然対数{{#expr: ln2}} = 0.69314718055995
abs絶対値。符号の除去{{#expr: abs1.2}} = 1.2
{{#expr: abs-1.2}} = 1.2
trunc小数点以下切り捨て{{#expr: trunc1.5}} = 1
{{#expr: trunc-1.2}} = -1
floor。引数以下の最大の整数{{#expr: floor 1.2}} = 1
{{#expr: floor -1.2}} = -2
ceil天井。引数より大きい最小の整数{{#expr: ceil 1.2}} = 2
{{#expr: ceil -1.2}} = -1
sin三角関数{{#expr: sin .1}} = 0.099833416646828
{{#expr: sin(30*pi/180)}} = 0.5
cos
tan
asin
acos
atan

真偽を求める演算子は、偽の時に 0 を、真の時に 1 を返します。

数は十進法で、小数点は "." で表します。E を用いた指数表記も使えます。内部の実装は IEEE 754倍精度小数です。

使用例として、{{#expr: (100 - 32) / 9 * 5 round 0 }} = 38これは、華氏温度を摂氏温度に変換し、整数に四捨五入します。
平方根

平方根を求めるときは Template:Root を利用します。

例: {{root|2}} = 1.4142135623731
if

if は、「もし ... ならば ... さもなくば ...」の構文です。文法は、{{#if: <もし文> 。<ならば文> 。<さもなくば文> }}{{#if: <もし文> 。<ならば文> }}

<もし文> が、空文字列ではなくホワイトスペースのみでもない場合は、<ならば文> が返されます。<もし文> が空文字列もしくはホワイトスペースのみであったならば、<さもなくば文> が返されます。<さもなくば文> は省略できます。省略された場合には、<さもなくば文> の代わりに空文字列が返されます。

テンプレートの引数が定義されている場合とされていない場合で処理を分けることができます。例えば、引数が定義されていればそれを、されていなければ 0 を返したい場合は、{{#if: {{{引数|}}} 。{{{引数}}} 。0 }}

とすれば、テンプレート呼び出しの際に、{{テンプレート|引数=なにがし}}

とあれば「なにがし」を返し、{{テンプレート}}

または {{テンプレート|引数=}}

とあれば 0 を返します。定義されていない場合に、何も返さない(空文字列を返す)としたければ、{{#if: {{{引数|}}} 。{{{引数}}} }}

とします。定義されている場合に 1、そうでない場合に 0 を返したければ、{{#if: {{{引数|}}} 。1 。0 }}

とします。なお、上記の {{{引数|}}} 内の "|" は、引数が指定されていないときのデフォルト値指定を示す記号です。ここでは "|" の後に何も指定されていないため、"引数" が定義されていない場合には空文字列を返し、"引数" が定義されている場合はその値を返します。そのため、#if: {{{引数|}}} という構文を、"引数" が定義されているか否かの判定に用いることができるのです。これを利用すると、{{#if: {{{引数A|{{{引数B|}}}}}} 。1 。0 }}

という複雑な判定文を作ることができます。この意味は、「"引数A" か "引数B" のいずれかが定義されていれば 1 を、どちらも定義されていなければ 0 を返す」になります。

ifでは、等号その他の数学的な演算は一切サポートされていないことに注意してください。例えば、

{{#if: 1 = 2 |はい|いいえ}} = はい (1 = 2 は空文字列でないから)

となります。if文は「もし定義されていたら」という条件が意図されています。もし、文字列を比較するのならば、ifeq を使ってください。また、数を比較するのなら、 ifexpr を使ってください。
ifeq

ifeq は2つの文字列を比較し、比較の結果に応じて異なる文字列を返します。文法は、{{#ifeq: <文字列1> 。<文字列2> 。<等しいときに返す文> 。<等しくないときに返す文> }}{{#ifeq: <対象文字列> 。<比較文字列> 。<等しいときに返す文> 。<等しくないときに返す文>}}

数値と見なされる文字列は、数値として判断されます。

{{#ifeq: 007 。7 。同じ 。違う }} = 同じ

{{#ifeq: +7 。7 。同じ 。違う }} = 同じ

{{#ifeq: 0 。-0 。同じ 。違う }} = 同じ

{{#ifeq: 1e2 。100 。同じ 。違う }} = 同じ

{{#ifeq: 0x10 。16 。同じ 。違う }} = 違う

(例外) {{#expr:}} で数値として扱える e、E、pi、PI は、文字として扱われます。

{{#ifeq: e 。E 。同じ 。違う }} = 違う

{{#ifeq: pi 。PI 。同じ 。違う }} = 違う

ダブルクオーテーション (") などの文字を追加して数値でなくすと、文字列として比較します。

{{#ifeq: "007 。"7 。同じ 。違う }} = 違う

{{#ifeq: "+007 。"7 。同じ 。違う }} = 違う

{{#ifeq: "1e2 。"100 。同じ 。違う }} = 違う

{{#ifeq: "0x10 。"16 。同じ 。違う }} = 違う


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:39 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef