- ベストアンサー
プログラミング【代入演算子】
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>2行目の式に代入して、 >y=y+5 >10=10+5 >y=15-10 >Y=5 ↑の「10=10+5」以降がなんとも。笑 「=」は「代入」なので y = y + 5; っていうのは (新しい)yには(古い)yに5を足したものを代入しますよ。 ってことです。 「数学」の「=」(等号)とは別物です。 なんなら慣れるまでは y ← y + 5; ってな感じで矢印に置き換えると感覚としてはわかりやすいかも。 yに5を足した値をyに入れるよ。 って見えません? 最後にもう1度書きますが、 プログラムの代入演算子「=」は「代入」なので、 「=」の右側にある値を、「=」の左側の変数に「入れる(代入)」 ってことです。 数学の方程式などで使う「=」(等号)とはまったくの別物です。
その他の回答 (3)
- pcbeginner
- ベストアンサー率46% (261/560)
ん? y+=15; じゃなくて y+=5; じゃん。 だったら「y=15」になるよ。 y+=15; で考えるなら、「y=25」になるよ。 だからテキストの計算結果はあってるし、 質問者さんの質問部分も計算結果はあってる。 たぶん見間違えて勘違いしちゃって、焦ってハマっちゃった感じですかね。 ちょっとコーヒーでも飲んで気分転換してみては? で、テキストで間違ってるのはNo.1さんの「同じ変数名を2度宣言してる」ってとこ。
お礼
待っ・・・待って!待ってください。 という事は、二行目は別の変数を使ったとして、 int y = 10; y+= 5; System.out,prinln("y="+y); とすると、計算の理解としては、 まず、y=10で、 2行目の式に代入して、 y=y+5 10=10+5 y=15-10 Y=5 にはならないのですか? そもそも私の理解が足りていないみたいです・・・ 何度読み返しても理解ができません。 y = 5 y+= 5 の違いがそもそも理解できておらず、テキストをみると、この「+=」というのは 複合代入演算子で、「足して代入」となるようです。 ということは、y += 5を考えた場合、 y= y+5・・・ これってそもそも計算できるのでしょうか?
- pcbeginner
- ベストアンサー率46% (261/560)
コンパイルエラーになりますよ。 int y = 10; y += 15; System.out.println("y="+y); を実行すると、質問者さんのご理解通り、「y=25」が出力されます。 どんなテキストか知りませんが、正誤表を探してみて、なければそんなテキストは返品してお金を返してもらいましょう。
お礼
ご回答有難うございます! 頑張って読み進めてはいたのですが、この部分でつまずき、20分ほど 「あーでもない、こーでもない」状態を繰り返しております。 写真を添付したのですが、やはり間違っておりますでしょうか?
- askaaska
- ベストアンサー率35% (1455/4149)
いいえ、 そもそも int y = 10; int y += 15; System.out.println("y="+y); これは2行目でコンパイルエラーになります。 同じ変数は2回宣言できません。 もし、このように書かれているのなら その本の記述に問題があることになります。
お礼
ご回答有難うございます。 写真を添付させて頂きましたが、いかがでしょうか? 本の記述に間違いがあるのでしょうか?
お礼
なんとも言えない計算をしてしまい、大変失礼いたしました。 もう恥もなにもかき捨ててご質問させて頂きました。 なるほど、やはり超ビギナーとしては、上記のややこしい書き方よりも、 おとなしく「y←y+5;」のほうがよっぽどわかりやすいので、 こちらでしばらく勉強を進めてみます。 思ったよりも早くテキストに出てきてしまったので、正直非常に焦っております。 このたびはご丁寧に回答してくださり、本当に助かりました。 有難うございます!!
補足
ちなみに、今の気持ちをプログラミング(勉強はじめて2日目)であらわすと、 public class arigatou{ public static void main(String[] args){ system.out.println(“本当に有難うございます!”); } } です。笑