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

例: {{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 。同じ 。違う }} = 違う

大文字と小文字は区別されます。

{{#ifeq: A 。a 。同じ 。違う }} = 違う

但し、数値とみなされる場合、大文字と小文字は区別されません。

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

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

ifexist

ifexist は、指定されたページが存在するかどうか(リダイレクトを含む)によって、2つのうちの1つの結果を返します。{{#ifexist: <ページ名> 。<あるときに返す文> 。<ないときに返す文> }}

1つ目のパラメータは、調べたいページ名です。2つ目は存在している場合に返す文、3つ目は存在しない場合に返す文です。調べたいページ名が有効なタイトルでなければ、存在しない場合の文が返されます。例えば、

{{#ifexist:Foo|Bar|.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}RFC?3092}} = Bar (Foo は存在するので)

{{#ifexist:Help:条件文|はい|いいえ}} = はい (Help:条件文は存在するので)

{{#ifexist:m:Help:Calculation|はい|おっと}} = おっと (m:Help:Calculationは存在しますが、これはウィキペディア日本語版の外(メタウィキメディア)のページです)

となります。

言語間リンクとそれ以外を区別するには {{If interwiki link}}も使えます。
ifexpr

ifexpr は、数式を評価(計算)し、その結果に従って2つの文字列からひとつを返します。{{#ifexpr: <数式> 。<真の場合に返す文> 。<偽の場合に返す文> }}

数式の結果が 0 または空文字列であった場合には <偽の場合に返す文> が返され、そのほかの場合には <真の場合に返す文> が返されます。数式の文法は expr と同じです。

{{#ifexpr: {{ns:0}} 。Toast 。or else }} = or else ({{ns:0}} は空文字列だから)

計算が行えない場合や不正な計算の場合はエラー文字列を返します。(参考:ゼロ除算

{{#ifexpr:1/0|0以外|0である}} = 0 で除算しました。

{{#ifexpr:1/n|0以外|0である}} = 構文エラー:「n」を認識できません。

<真の場合に返す文>も<偽の場合に返す文>も省略すると、何も返しません(空文字列を返します。)

{{#ifexpr:1/2}} =

省略した場合でも数式の評価は行います。

{{#ifexpr:1/0}} = 0 で除算しました。

{{#ifexpr:1/n}} = 構文エラー:「n」を認識できません。

評価結果を更に評価させる場合は結果に注意してください。

{{#if: {{#ifexpr:1/0}} 。エラー文字列 。空 }} = エラー文字列


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

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