• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaScript IFを利用した場合分けについて)

JavaScriptの場合分けについて

このQ&Aのポイント
  • JavaScriptで場合分けを行う際にはif文を使用します。if文は条件式を指定し、条件に応じて処理を実行する制御文です。条件式には数字のみを入れることも可能です。
  • 一方、TAG Indexというサイトのソースコードを見たところ、if文の条件式として「flag」という変数が使われていました。この変数には0という値が代入されており、0の場合はelseに処理が移ります。なぜこのような書き方がされているのかは明確にはわかりませんが、プログラムの動作を見る限り、特定の条件を満たす場合に処理が実行されるようになっている可能性があります。
  • JavaScriptのif文は条件式を指定することで制御の流れを変えることができます。条件式には数値や変数、比較演算子、論理演算子などを使用することができます。また、条件式の結果がtrueの場合はif文の中の処理が実行され、falseの場合はelse文の中の処理が実行されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.1

IFの中には、式以外のものを入れることができます。 式以外を入れたときは以下のようになります。 ・booleanの場合は、falseはfalse、trueはtrue ・数値の場合は、0でfalse、0以外でtrue ・文字列の場合は、0バイトでfalse、1バイト以上でtrue ・プロパティの場合は、そのプロパティが存在しない時にfalse、存在する時にtrue 提示されているURLのサンプルソースでは、数値を使っています。 if(数値){ //数値が0の場合 }else{ //数値が0以外の場合 } になります

nekoc
質問者

お礼

ご回答どうもありがとうございます。 探し方が悪かったのか、手持ちの書籍やWEBで条件式以外の説明を 見つけられなかったのでとても勉強になりました。 式以外でも条件指定は可能だったのですね。 >提示されているURLのサンプルソースでは、数値を使っています。 >・数値の場合は、0でfalse、0以外でtrue となると↓のようになるのでは…?? 実際に動かしてみましたが、0以外でtrue、0でfalseと判定されています。 if(数値){ //数値が0以外の場合(入力項目に不備が一箇所以上ある場合) }else{ //数値が0の場合(入力項目に不備がない=flagが0のままの場合) }

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.5

ANo.1です 申し訳ありません ANo.4さんのご指摘のとおり、私の書き間違いです。 実際の動作が正しいです。

nekoc
質問者

お礼

ご本人から直接確認できて安心しました。 この度は丁寧にどうもありがとうございました。

すると、全ての回答が全文表示されます。
  • Dumper
  • ベストアンサー率28% (24/84)
回答No.4

ANo1さんの回答の最後のサンプルは多分単なる書き間違いでしょう。 (私もよくやります) 一般的な単純式なら if(数値)側が 数値ありでelse側が0ですから。 nekocさんが再確認してる式で正解ですよ。

nekoc
質問者

お礼

ご回答ありがとうございます。 基本的には0以外=真、0=偽という理解でいいのですね。 きちんと確認できてよかったです。

すると、全ての回答が全文表示されます。
  • auty
  • ベストアンサー率58% (284/486)
回答No.3

すみません、次のように変更したほうが正確になると思います。 -------------------------------------------------------------------------------- <<< if(条件式)の中の条件式は、 <<<    document.form1.field1.value == "" <<< で、数値が使われていないことを確認してください。論理値を返す論理演算式です。 <<< サンプルのプログラミングでは、flagという変数を使うにあたって、 <<<    flagが0のときは、入力エラーなし、 <<<    flagが1のときは、入力エラーが見つかった <<< ということにしています。 <<< そして、if(条件式)の中では、flagの値が1(true)かどうかをチェックしているだけです。 -------------------------------------------------------------------------------- サンプルのプログラミングでは、最初の3つのif(条件式)の中の条件式は、    document.form1.field*.value == "" で、数値が使われていないことを確認してください。論理値を返す論理演算式です。 flagという変数を使うにあたって、    flagが0のときは、入力エラーなし、    flagが1のときは、入力エラーが見つかった ということにして、そのブロックの中で、flagに値をセットしています。 そして、最後のif(条件式)の中では、flagの値が1(true)かどうかをチェックしているだけです。

nekoc
質問者

お礼

ご回答どうもありがとうございます。 単純に0と1を単純に真偽としてとらえるだけでなく、こういう考え方もあるんですね。 勉強になります。

すると、全ての回答が全文表示されます。
  • auty
  • ベストアンサー率58% (284/486)
回答No.2

やや別の見方をすると、    if(条件式) の条件式は、論理値という結果を返します。 JavaScriptで扱う論理値は、    true,false のです。 条件式の中では、算術の演算や比較がおこなわれて、 論理値(true,false)が返されます。 JavaScriptは、型の変換に柔軟性があり、   「条件式を使うところでは、その結果がtrueかfalseに変換可能な場合は、その論理値を返す。」 ということになっています。別の言葉で言うと、そのコンテキストに従って柔軟に型の変換を行うということです。 その具体的な方法はすでに述べられている通りです。 これに対して、結果が論理値という点では、条件式と似ていますが、 論理演算式というのがあります。これに使われるのが、    and,or,not です。条件式との違いは、引数(計算のときに使われる値)が すべて論理値ということです。 さて質問に関してですが、 -------------------------------------------------------------------------------- >>> この【if(条件式)】の条件式の部分に 数字のみを入れることは可能なのでしょうか?(質問1)...(質問2) -------------------------------------------------------------------------------- 条件式は、論理値を返す、わけですから、数値から論理値への変換となります。 -------------------------------------------------------------------------------- >>> となると↓のようになるのでは…?? -------------------------------------------------------------------------------- 解説とサンプルに矛盾はありません。 if(条件式)の中での論理値と、if(条件式)をプログラミングの中でどう使うかは異なります。 たぶんこのあたりを混同して解釈しているのでしょう。 if(条件式)の中の条件式は、    document.form1.field1.value == "" で、数値が使われていないことを確認してください。論理値を返す論理演算式です。 サンプルのプログラミングでは、flagという変数を使うにあたって、    flagが0のときは、入力エラーなし、    flagが1のときは、入力エラーが見つかった ということにしています。 そして、if(条件式)の中では、flagの値が1(true)かどうかをチェックしているだけです。

すると、全ての回答が全文表示されます。

関連するQ&A