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

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}} 。エラー文字列 。空 }} = エラー文字列

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

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

{{#if: {{#ifexpr:a=b}} 。エラー文字列 。空 }} = エラー文字列

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

switch

switch は、ひとつの値(基準値)を他の複数の値と比較し、一致するものが見つかったら該当の値を返します。文法は基本的に、{{#switch: <基準値>。<値1> = <返す文1>。<値2> = <返す文2>。...。<値n> = <返す文n>。<その他の時に返す文>}}

switch はそれぞれの値を、基準値と一致するものがみつかるまでそれぞれの値をずっと探そうとします。もし見つかったら、値に相当する文(等号のあとにある文)を返します。もし見つからなかったら、最後の等号のない項を返します。もし、この項にどうしても等号を含めて書く必要がある場合には、#default を用います。{{#switch: <基準値>。<値> = <返す文>。#default = <その他の時に返す文>}}

同じ返す文を何度も書くのを省略するため、値が「通り抜ける」構造になっていることに気をつけてください。たとえば、{{#switch: <基準値>。<値1>。<値2>。<値3> = <返す文3>。...。<値n> = <返す文n>。<その他の時に返す文>}}

この例では、値1と値2に等号が付いていません。もしそれらに一致したら、返す文3が返されます。つまり、等号を省略した場合には、次の最初の等号の後の文が返されるのです。

switch も ifeq と同様、数値と見なされる文字列は、数値として判断されます。次の結果に注意してください。

{{#switch: 007 。7=7にマッチ 。007=007にマッチ 。#default=マッチなし }} = 7にマッチ

{{#switch: "007" 。7=7にマッチ 。007=007にマッチ 。#default=マッチなし }} = マッチなし


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

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