みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Java初心者です。宜しくお願い申し上げます。

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


------------------
(program exited with code: 0)
Press return to continue

代入後の値が何故
3
3
3
3
となるか解りません。
どなたか解説してもらえませんか?

ご多忙中恐縮です。
ご回答の程宜しくお願い申し上げます。

投稿日時 - 2018-06-21 17:20:29

QNo.9510570

困ってます

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

longValue=intValue;
System.out.println("代入中の値1");
System.out.println(longValue);
System.out.println(intValue);
System.out.println(shortValue);
System.out.println(byteValue);
intValue=shortValue;
System.out.println("代入中の値2");
System.out.println(longValue);
System.out.println(intValue);
System.out.println(shortValue);
System.out.println(byteValue);
byteValue=(byte)shortValue;
System.out.println("代入中の値3");
System.out.println(longValue);
System.out.println(intValue);
System.out.println(shortValue);
System.out.println(byteValue);
longValue=intValue;

途中をこのようにしてみてください。
何をしているかわかります。

投稿日時 - 2018-06-21 18:09:53

お礼

私の悪い癖で少し考えれば解るものを

OKWAVEに丸投げにしていました。

このような事が無いようにします。

折角、ご回答くださったのにすみませんでした。

投稿日時 - 2018-06-21 21:24:01

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

変数宣言のときに代入した値
long longValue=1;
int intValue=2;
short shortValue=3;
byte byteValue=4;
代入の結果では次のようになる
longValue=intValue; → longValue=2;
intValue=shortValue; → intValue=3;
byteValue=(byte)shortValue; → byteValue=(byte)3;
longValue=intValue; → longValue=3;
2番目にintValueへshortValueの3を代入しているので最初にlongValueへ代入した値は最後に代入したintValueの3に入れ替わります。
従って、System.out.printlnで出力している変数はすべて3が代入されているはずです。
初期値を他の値に置き換えた(代入した)ことを忘れないようにしてください。

投稿日時 - 2018-06-21 21:10:00

お礼

私の悪い癖で少し考えれば解るものを

OKWAVEに丸投げにしていました。

このような事が無いようにします。

折角、ご回答くださったのにすみませんでした。

投稿日時 - 2018-06-21 21:22:56

ANo.2

>longValue=intValue;
>intValue=shortValue;
>byteValue=(byte)shortValue;
>longValue=intValue;

順に実行されたとき、そろぞれの行でlongValue,intValue,byteValueの値に何が入っているのか、よく考えればいいことです。

投稿日時 - 2018-06-21 19:14:29

お礼

私の悪い癖で少し考えれば解るものを

OKWAVEに丸投げにしていました。

このような事が無いようにします。

折角、ご回答くださったのにすみませんでした。

投稿日時 - 2018-06-21 21:22:05

あなたにオススメの質問