• ベストアンサー

if文の初歩的な質問

if文の初歩的な質問なのですが、 if (a==1) c=10; else if (a==2) c=20; else if (a==3) c=30; System.out.println(c); この文のelseはなぜいるのでしょうか?どちらでも良いのでしょうか? 基本のルールとしては、elseが付くのでしょうか?

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

  • ベストアンサー
回答No.5

処理結果は変わらないかもしれません。 しかし,elseがある場合でaが1だった場合はif文による評価は最初の1回で終わりですが,elseがないと残りのif文がすべて無駄に実行されて処理が終了するのが少し遅くなるでしょう。

papa4351
質問者

お礼

返答ありがとうございます。 なるほど!それは是非付けた方がよさそうですね。

その他の回答 (4)

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.4

フローチャートにおこしてみると、 elseを付ける場合と、付けない場合の、処理の流れが違う事が確認出来ると思いますよ。 >この文のelseはなぜいるのでしょうか?どちらでも良いのでしょうか? >基本のルールとしては、elseが付くのでしょうか? else if を使うか、使わないかは、その記述する処理によりますから、 一概には言えませんが、アルゴリズムが分かってくると、 else ifの使用が必要か、必要でないかもわかってくると思います。

papa4351
質問者

お礼

返答ありがとうございます。フローチャートですか。 やはり基本的なことを学習していくことが面倒でも近道なのかもしれません。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.3

>この文のelseはなぜいるのでしょうか?どちらでも良いのでしょうか? 当然、ケースバイケースです。 >基本のルールとしては、elseが付くのでしょうか? 常に必要かどうかを考えるのが正しい態度です。 ヒントとしては、ない場合にどうなるかを考えましょう。 今のケースだと、a が 4 の場合に c の値がどうなるのか、 このコードの断片だけでは不明なため、else が必要そうです。 より正しいのは if 文そのものを書かずに c = a * 10; などとすることですが。

papa4351
質問者

お礼

返答ありがとうございます。様々な回避の方法もありそうですね。

  • jqp
  • ベストアンサー率36% (4/11)
回答No.2

おなじ、違うとしたらこんなときでは a=1; b=2; if(a==1) c=10; else if(b==2) c=20; このcは10になるですが、elseがないと20になる

papa4351
質問者

お礼

返答ありがとうございます。条件次第では違ってくるんですね。

  • sho5296
  • ベストアンサー率0% (0/1)
回答No.1

ifを「もし」と置き換えるとすると elseは「それ以外」という意味になります 具体的用法は ○以上○以下のとき×× それ以外で○以上○以下×× さらにそれ以外のとき×× のような感じです。 この文の場合、 aが範囲(複数)ではなくひとつに指定されているため elseはなくても正常に動作すると思います しかし基本的なルールとしてはelseがあるほうが正しいということに なるのではないでしょうか 一高校生の意見なのであまり参考にはならないと思いますが…

papa4351
質問者

お礼

返答ありがとうございます。高校生でプログラミングの知識は素晴らしいですね。