テキストブックを読んでいます。(数学が大の苦手です)
複合代入演算子についてなのですが、テキスト解説には、
int y = 10;
int y += 15;
System.out.println("y="+y);
というプログラムがあるとします。この場合の実行結果の数字は「y=15」でした。
全く意味がわかりません。
int y = 10というのは[y=10」で、int y = 15 に当てはめると、
10+15=25ではないのですか?
どのように計算すれば「u=15」が出てくるのか知りたいです。
恥ずかしながら、宜しくお願いします。
No.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度書きますが、
プログラムの代入演算子「=」は「代入」なので、
「=」の右側にある値を、「=」の左側の変数に「入れる(代入)」
ってことです。
数学の方程式などで使う「=」(等号)とはまったくの別物です。
この回答への補足
ちなみに、今の気持ちをプログラミング(勉強はじめて2日目)であらわすと、
public class arigatou{
public static void main(String[] args){
system.out.println(“本当に有難うございます!”);
}
}
です。笑
なんとも言えない計算をしてしまい、大変失礼いたしました。
もう恥もなにもかき捨ててご質問させて頂きました。
なるほど、やはり超ビギナーとしては、上記のややこしい書き方よりも、
おとなしく「y←y+5;」のほうがよっぽどわかりやすいので、
こちらでしばらく勉強を進めてみます。
思ったよりも早くテキストに出てきてしまったので、正直非常に焦っております。
このたびはご丁寧に回答してくださり、本当に助かりました。
有難うございます!!
No.3
- 回答日時:
ん?
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・・・
これってそもそも計算できるのでしょうか?
No.2
- 回答日時:
コンパイルエラーになりますよ。
int y = 10;
y += 15;
System.out.println("y="+y);
を実行すると、質問者さんのご理解通り、「y=25」が出力されます。
どんなテキストか知りませんが、正誤表を探してみて、なければそんなテキストは返品してお金を返してもらいましょう。
ご回答有難うございます!
頑張って読み進めてはいたのですが、この部分でつまずき、20分ほど
「あーでもない、こーでもない」状態を繰り返しております。
写真を添付したのですが、やはり間違っておりますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# 3×3のラテン方陣をつくるプログラムを作成したのですが、(↓) #include <stdio.h> 5 2023/07/10 01:53
- C言語・C++・C# C言語 ポインタ 配列 2 2022/06/02 17:29
- Visual Basic(VBA) VBAプログラミング 4 2023/01/14 00:38
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
エラーの意味は? Lvalue req...
-
切り上げ
-
i++と++i ってどう違うのですか?
-
jsp~jspにhiddenを使って変数...
-
構造体からレコードセットへの代入
-
Variant型で宣言してるのにEmpt...
-
コマンドプロンプト バッチ|結...
-
processing エラーで、 "cannot...
-
[VBS]変数を定数に変換する方法...
-
定数の設定について。
-
Pythonで辞書内のValueをfor k,...
-
js this
-
サブwindowをオープンして外部...
-
VB6.0 DataGridでのfirstRowの...
-
VBAで日時を文字列から代入する...
-
verilog HDLの[=]と[<=]の使い分け
-
JAVAのユーザー定義関数
-
EXCEL/VBA 変数の値をクリップ...
-
インクリメント演算子の前置(+...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラーの意味は? Lvalue req...
-
VBAでダブルコーテーション入り...
-
だれがとけるの?
-
jsp~jspにhiddenを使って変数...
-
テキストボックスの値を変数に...
-
EXCEL/VBA 変数の値をクリップ...
-
[VBS]変数を定数に変換する方法...
-
processing エラーで、 "cannot...
-
Variant型で宣言してるのにEmpt...
-
整数xxxが大き過ぎますというエ...
-
プログラミングで変数と関数の...
-
C言語 アロー演算子について質...
-
C言語 列挙型(enum型)変数について
-
i++と++i ってどう違うのですか?
-
切り上げ
-
インクリメント演算子の前置(+...
-
VB6.0での条件文にある#の意味
-
親ウィンドウの情報をインライ...
-
C言語 exitで終了した関数の戻...
-
Serialize(CArchive& ar)にて
おすすめ情報