• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:三項演算子の書き方)

三項演算子の書き方とは?

このQ&Aのポイント
  • 三項演算子は、条件によって値を代入するための短くコンパクトな方法です。
  • 1)は、条件によって値を代入し、さらに別の処理も行います。
  • 2)は、条件によって値を代入するだけで、別の処理はありません。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

例文1と例文2は、同じもので違いはないと思います。 1)、2)、3)のような場合、素直にif~elseで書きましょう。

waterclock
質問者

お礼

どうもありがとうございます。 >例文1と例文2  そうですよね。私もそう思います。 三項演算子にしたかったのは、1行で書けるので、スマートだな~と 感じたからです。 参考にしたサイトは、次のURLです。PHPは含まれていませんが。 http://hp.vector.co.jp/authors/VA010341/conditional.html 1、2、3は、素直にそのようにします。 色々とテストしたのですが、エラーですし、あまりメリットないですから。 色々とありがとうございます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>参考にしたサイト 拝見しましたが、 同じくらい正しくないというソースには、 正しくない理由として不適当(意味無し)だと思います。 Cでは、改行やスペースは、構文としては無視されるからです。 そのことと、"文字列1" "文字列2"が連結されることは関係がないし、また、そうした記述が間違いであるとするのもおかしいです。 (プログラミングスタイルとして許せないということなのかと思いますが・) ちなみに、PHPと違ってCやPerlでは、「,」(カンマ演算子)を使って式として複文を書けると思いますが、やはり素直に、書いた方がいいと思います。 ( )でくくるくくらないというのは、必要がなくても、わかりやすさのためにくくる場合もありますが、演算子の優先順位によっては必要になります(当たり前ですが)

waterclock
質問者

お礼

情報ありがとうございます。 そうですね。これも、JavaScriptにランゲージをつける派と、 text/javascript派のような、宗教めいた世界なのかもしれませんね。 if, elseをつかうと4行のところを、1行で表現するからスマートなので、 それを、例文2のように書くと3行になって、あまり変わらない。 テストして、1行でいけたら今のところ問題ないので、例文1を 使おうと思います。

  • SuperLe
  • ベストアンサー率44% (434/977)
回答No.2

わたしは、結構、3項演算子使いますが、例文1も2も実際に動作させた時、エラーになったりしませんか? あるいは、動作が違ったりしません?  全部文字列だとして、 $css =("$omni_rv" >= "$omni_ver") ? ("$khtml") : ("$old"); というように、がんじがらめに書いた方が安心できませんでしょうか。 以前、以下のようなものを書いて、""や()が無いと、とんでもないことになったことがあったので。 echo "<select name=test>"; for ($i=1; $i<=64; $i++) { $y=1924+$i; echo "<option value=$y".(($birth_y==$y)?(" selected"):("")).">昭和"."$y"."年</option"> } ・・・・ もしかしたら、いくつかの括弧などは要らないのかもしれませんが・・・。

waterclock
質問者

お礼

情報ありがとうございます。 比較式を括弧でくくる事は、私もあります。 ?以下の文でもperlなどでは良く見かけます。 なかなか難しいですね。今のところ括弧がなくても動作しているので、 余り気にしていません。

関連するQ&A