#07 Java キャスト(型の変換)

  • このエントリーをはてなブックマークに追加
  • LINEで送る

 

UPSTARTSのぱみやすです

今回はJava型の変換(キャスト)の方法をみていきます

 

まず、ある型で宣言された変数には、その型の値しか代入出来ません

例をみてみましょう

 

データの型が違う場合

「double型」で変数を初期化し、その変数を「int型」の変数に代入します

 

こちらを実行するとエラーとなってしまいます

なぜかというと

代入先の変数の型」と「代入する値の型」が一致しないため、エラーになってしまいます

 

データ型が同じ場合

もう一つ例を見てみましょう

「long型」で変数を初期化し、その変数を「int型」に変数を代入します

 

こちらを実行すると「データの型が同じ整数型」なのにエラーとなってしまいます

同じ整数型でも「int型」には「long型」の変数を代入することができません

 

なぜかというと

「long型」の方が「int型」より、値が大きいためエラーになってしまいます

 

ですが「long型」に「int型」を代入することはできます

 

型の変換(キャスト)

先ほどの代入には「型を強制的に変換して代入する」方法があります

この方法を「キャスト」と言います

 

キャストの方法は

 

「double型の変数d」の値を代入をする前に「int型」に変えてあげます

 

「long型」も同じように値を代入をする前に「int型」に変えてあげます

 

書き方は型を変換したい変数の前に「(データの型)」を書くだけです

今回は「int型」に変換したいため、このように書いています

 

こちらを実行すると「変数 x」は「123」と表示され、「変数y」は「7777」と表示されます

「変数 x」が「123.45」と表示されず、「123」と表示される理由は下記をみてください

 

 

ではもう一つ例を見ていきましょ

「int型」で変数を宣言し、それを「3」で割って「double型」の「変数d」に代入します

 

こちらの実行すると「3.33333」と表示されるず「3」と表示されます

 

なぜかというと

「変数i」は整数型なので整数の演算になってしまい、あまりが切り捨てられて、「 3」が代入されてしまします

 

ちゃんと表示させたい場合は

代入をする前に、整数型の「変数i」を「double型」に変換してます

 

 

実行するとちゃんと「3.33333」と、表示されます

 

 

まとめ

 

では次回は条件分岐のif文についてやっていきます


  • このエントリーをはてなブックマークに追加
  • LINEで送る