.. _if-command-label: ================= IFコマンド ================= `M言語プログラミングブック`_ (Pages 95-97) [WALTERS1997]_ と `GT.Mプログラマーズガイド`_ から引用 解説 ########### | I[F] [tvexpr[,...]] IFコマンドは、ステートメントがtrueを返した場合、アクションの実行をコンピュータに指示します、もしfalseの場合は何もせず次の行にジャンプします。 例 ######## :: IF Count<100 WRITE "Done" カウント<100 WRITEが完了すると、 "Done" IF 上記の例では、カウントが100未満の数の場合のみ、"Done" を書き出します。 コマンドがIFの条件と同じ行に書かれなければならないことに留意することが重要であり、ここでは、コマンドWRITEは、IFと同じ行にあります。望ましくないカウント変数にもかかわらず、この様式の入力に失敗している場合は、出力として "Done" が生じるでしょう。 :: IF X=3 IF Y=7 WRITE "Hi" X=3 かつ Y=7 の場合にのみ、'Hi' は書き出されます。どちらかが false の場合、何も出力されません。このケースは、true となる必要がある唯一の変数がの値があり、 'or' ステートメントを実現することができます。 :: IF X=3!(Y=7) WRITE "Hi" Yが8でなく、Xが3であっても、"Hi" まだ書かれます。 ELSEコマンド :: IF H>5 WRITE "more than 5",! ELSE WRITE "no more than 5",! IFステートメントが falseを返し、次のコマンドが実行されないケースでは、ELSE ステートメントを追加できます。上記のケースでは、Hが3の場合、"no more than 5" を出力します。 ELSEは、引数なしのコマンドなので、 "ELSE" コマンドに続くステートメントとの間には、2つのスペースが存在しなければならないことに注意してください。 ',!' が追加されていることに注意してください、各行の終わりでは、このしるしで新しい行を示します。 $TEST特殊変数も説明します。 M言語は実際には、$TESTという表題の変数内で、IFステートメントからの真偽値の結果を格納します。例 :: IF X=3 WRITE "hello" Xが3と等しい場合、$TEST変数は 'true' を意味する 1が含まれています、Mumpsは、この行上に続くコマンドのWRITEします、したがって、"hello" が出力されます。Xが3でない場合は、 TEST変数は 'false' を意味する0となり、Mumpsはコードの次の行にジャンプするので、したがって、何も表示されません。 関連事項 ######### * :ref:`test-variable-label` 参照 ########## `GT.Mプログラマーガイドの IF ページ`_ .. _M言語プログラミングブック: http://books.google.com/books?id=jo8_Mtmp30kC&printsec=frontcover&dq=M+Programming&hl=en&sa=X&ei=2mktT--GHajw0gHnkKWUCw&ved=0CDIQ6AEwAA#v=onepage&q=M%20Programming&f=false .. _GT.Mプログラマーズガイド: http://tinco.pair.com/bhaskar/gtm/doc/books/pg/UNIX_manual/index.html .. _GT.Mプログラマーガイドの IF ページ: http://tinco.pair.com/bhaskar/gtm/doc/books/pg/UNIX_manual/ch06s09.html