ヘルプ:条件文
表示
註:このページを読む前に、Help:テンプレート、Help:マジックワードを読むことをお勧めします。
ここでは、条件文について、解説します。条件文とは、if文などの「もしも~なら」という形で場合分けする文のことですが、ここでは条件文を書くためのMediaWikiの機能について解説します。
条件文を記述する機能は、MediaWikiのParserFunctions拡張機能が提供しています。条件文は以下のような書式で書くことができます。
{{#関数名: 引数1 | 引数2 | 引数3... }}
関数一覧
[編集]現在、日本語版ウィキボヤージュではexpr
、if
、ifeq
、ifexist
、ifexpr
、switch
、time
、timel
、rel2abs
、titleparts
、iferror
の条件文が使用可能です。
expr
[編集]expr
関数は、数式の演算を行います。書式は、
{{#expr: <数式> }}
です。
小数は.
、分数は/
を使用してください。
演算子 | 演算 | 例 |
---|---|---|
( ) |
優先 | {{#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 |
なお、カンマ入りの数はFormatnumマジックワードでカンマを取ってください。
記入 | 出力 |
---|---|
{{Formatnum:1,234,567,890|R}} | 1234567890 |
{{#expr: {{Formatnum:1,234,567,890|R}} }} | 1234567890 |
if
[編集]if
関数は、第一引数が空文字列あるいは半角スペース (
) の場合[註 1]、第三引数を返し、そうでない場合第二引数を返します。
入力 | 出力 | 解説 |
---|---|---|
{{#if: あ | true | false }} | true | |
{{#if: | true | false }} | false | |
テンプレートの引数が定義されているかを調べる | ||
定義されていなかった場合 | ||
{{#if: {{{1|}}} | true | false }} | false | {{{1|}}} が空だったので、falseを返した |
{{#if: {{{1}}} | true | false }} | true | {{{1}}} には何も入っていなかったが、{{{1}}} という文字列がそのまま返されたので、if関数はtrueを返した。(詳しくはHelp:テンプレート参照) |
「あ」が定義されていた場合 | ||
{{#if: {{{1|}}} | true | false }} | true | {{{1|}}} に「あ」が定義されていたため(空文字列ではなかったため)、trueを返した。 |
{{#if: {{{1}}} | true | false }} | true | {{{1}}} に「あ」が定義されていたため、空文字列でなかったのでtrueを返した。 |
ifeq
[編集]{{#ifeq: <文字列1> | <文字列2> | <等しいときに返す文> | <等しくないときに返す文> }}
ifeq
関数は第一引数と第二引数に入力された文字列を比較し、等しい場合には第三引数を、等しくない場合には第四引数を返します。
脚注
[編集]- ↑ 全角スペースは文字列とみなす