![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
数日前からIT業界に転職をして、今Javaの勉強をしています。本当に初心者でテキストの意味がわからないところがあり、質問をさせていただきます。
テキストで異なる種類の型に代入しているコードがあるのですが、代入後の値の実行結果がなぜそうなるのかわかりません。
本当に初歩的な質問で申し訳ないのですが、どなたか噛み砕いて実行結果になるまでの経過を辿った説明をしていただけませんでしょうか。
○異なる種類の型に代入しているコード
public class Sample5_5 {
public static void main(String[] args) {
long longValue = 1;
int intValue = 2;
short shortValue = 3;
byte byteValue = 4;
System.out.println("最初の値");
System.out.println(longValue);
System.out.println(intValue);
System.out.println(shortValue);
System.out.println(byteValue);
longValue=intValue;
intValue=shortValue;
byteValue=(byte)shortValue;
longValue=intValue;
System.out.println("代入後の値");
System.out.println(longValue);
System.out.println(intValue);
System.out.println(shortValue);
System.out.println(byteValue);
○実行結果
最初の値
1
2
3
4
代入後の値
3
3
3
3
この代入後の値がなぜ全て3になるのかわかりません。
宜しくお願いいたします。
No.5ベストアンサー
- 回答日時:
>1:longValue=intValue; ←longValue=intValueなので2になる
>では、実際の実行結果は変数は3になりますよね。
>実行結果までのさらに詳細な経緯は、
>2:intValue=shortValue;←intValue=shortValueのinntvalue
>がここで3になったいるので、1:longValue=intValue;も変数は2ではなく最終的に3になるという認識でよろしいのでしょうか?
そうです。
1:でlongValueの値が2になりますが、4:にてlongValue=intValueの値となるため最終的に3になります。(2:にてintValue=shortValueつまり3が代入されている)
No.4
- 回答日時:
あはは。
ちょっとマジ悩んでしまった。
# longValue が 2 になる
longValue=intValue;
# intValue が 3 になる
intValue=shortValue;
# byteValue が 3 になる
byteValue=(byte)shortValue;
# longValue が 3 になる
longValue=intValue;
No.3
- 回答日時:
結論から言うと4ステップの代入文で
変数shortValueの値(3)をlongValue、intValue、byteValueに
代入する処理をしています。
デバッグを行うなら、各ステップ実行直後に4つの変数値を
コンソール出力すれば、実行結果に納得されるはず。
例.
longValue=intValue;
System.out.println("STEP1 実行後");
System.out.println("longValue : "+ longValue +
"intValue : "+ intValue +
"shortValue : "+ shortValue +
"byteValue : "+ byteValue);
intValue=shortValue;
System.out.println("STEP2 実行後");
System.out.println("longValue : "+ longValue +
"intValue : "+ intValue +
"shortValue : "+ shortValue +
"byteValue : "+ byteValue);
byteValue=(byte)shortValue;
System.out.println("STEP3 実行後");
System.out.println("longValue : "+ longValue +
"intValue : "+ intValue +
"shortValue : "+ shortValue +
"byteValue : "+ byteValue);
longValue=intValue;
System.out.println("STEP4 実行後");
System.out.println("longValue : "+ longValue +
"intValue : "+ intValue +
"shortValue : "+ shortValue +
"byteValue : "+ byteValue);
回答ありがとうございました。理解できないときはコンソール出力をすると良いのですね、調べてみまて、今度またそうゆうことがあったときにはトライしてみます。ありがとうございました。
No.2
- 回答日時:
1箇所訂正
×
4:longValue=intValue;←longValue=intValueなので3になる(3:にてintValueの値は3になっている)
○
4:longValue=intValue;←longValue=intValueなので3になる(2:にてintValueの値は3になっている)
No.1
- 回答日時:
long longValue = 1;
int intValue = 2;
short shortValue = 3;
byte byteValue = 4;
1:longValue=intValue; ←longValue=intValueなので2になる
2:intValue=shortValue;←intValue=shortValueなので3になる
3:byteValue=(byte)shortValue;←byteValue=shortValueなので3になる
4:longValue=intValue;←longValue=intValueなので3になる(3:にてintValueの値は3になっている)
結果すべての変数は3となる。
この回答への補足
回答下さいましてありがとうございます。
上の説明の1.で一つお聞きしてもよろしいでしょうか。
1:longValue=intValue; ←longValue=intValueなので2になる
では、実際の実行結果は変数は3になりますよね。
実行結果までのさらに詳細な経緯は、
2:intValue=shortValue;←intValue=shortValueのinntvalue
がここで3になったいるので、1:longValue=intValue;も変数は2ではなく最終的に3になるという認識でよろしいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- 英語 この英文の意味を教えてください 3 2023/07/07 20:36
- Ruby vscode 文字化け 1 2022/05/21 19:17
- オープンソース Try Kotlinで readLine()を使うには 1 2023/03/27 21:06
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- 英語 It has an extremely popular e-mail system, reporte 1 2022/11/04 19:41
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- C言語・C++・C# [至急]Project Euler:#13Large sum コード、入力、出力、解説 1 2022/09/24 02:30
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
「続行するには何かキーを押し...
-
[JAVA]try 内の変数を外で!?
-
JAVAのDouble型の小数点以下の...
-
Java 約分のプログラミングにつ...
-
文字列の引き算
-
データベースに接続できません。
-
フィボナッチ数列
-
Javaプログラムについて質問で...
-
全角スペースの判定について
-
EclipseでJava
-
If they left after eleven o'c...
-
JAVAのエラーの意味が分かりま...
-
IPアドレスで 011.022.033.044 ...
-
Webアプリケーション checkbox...
-
ServletからのURLアクセス時のH...
-
Javaのコマンドライン引数を使...
-
Javaの型や型変換について
-
java シンボルが見つかりません...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
[JAVA]try 内の変数を外で!?
-
JAVAのDouble型の小数点以下の...
-
EclipseでJava
-
JAVA 文字色変更
-
改行の判定方法
-
ファイル名に変数を使う(Java)
-
曜日の取得方法を教えて下さい!
-
java シンボルが見つかりません...
-
JAVAのエラーの意味が分かりま...
-
Javaでカレントディレクトリを...
-
エクセルマクロ文で、赤文字セ...
-
LC発振回路-ループ利得
-
Javaのコマンドライン引数を使...
-
nullcline
-
「続行するには何かキーを押し...
-
会員情報登録プログラムの作成...
-
文字列の引き算
-
Javaのプログラムがどうしても...
おすすめ情報