【Java】キャストを使った型変換の方法!

Java

皆さんこんにちは。
Numata です。

今回はキャストを用いた型変換について解説します。

型変換とは何ぞや?という方から
キャストしようとしたのに。結局できていない!!」という方や
int型にキャストしたはずなのに少数が出てくる!!?」という方まで
たくさんいらっしゃると思います。

そんなあなたのキャスト事情を解決し、キャストマスターにします!

それでは始めましょう!

キャストを使うためには、キャストしたい値を完成させましょう

型変換をするときには、あらかじめ変換したい値を完成させましょう

というお話です。

どういうことかを説明します。
以下例文です。

この例文だと、コンパイルエラーが発生します。
原因は、変換したい値”が完成していない からです。

この例文における
変換したい値
とは、
合計金額と消費税額の合計
です。



つまり、
total と total * tax
の合計値です。


その理由はお分かりいただけますよね。
何かものを買うとき、お店に支払う金額は
商品価格+消費税 だからです。

例文のように、支払う金額の計算、出た値の型変換 を
1行の文で実行しようとすると
”変換したい値”が完成していない状況になることが多々あります。


”変換したい値”が完成していない ことがコンパイルエラーになる原因です!

キャストしたい値が完成していない状態ではだと、
上手にキャストできないことが多々あります。

キャストはほぼ最強です

では、なぜ”変換したい値”をあらかじめ完成させる必要があるのでしょうか。

その答えは、
キャストは強いから
です。

めちゃくちゃ強いです
ここでいう強いは、計算順位のことを指します。

計算順位とは何でしょう。
おそらく小学校で習ったと思います。(記憶があいまいですが、、)
”×や÷” は ”+やー” より先に計算しましょう!
というルール。これのことです。

同一式の中に、様々な計算記号が混ざっていたら、
記号につけられている順位に従って計算しましょうというルールを
計算順位といいます。

Javaでも同様に演算子(計算記号)には、
計算順位が定められています。


基本的な記号は算数と変わりはありません。
(詳しくは別の記事を参照してみてください。)

その中で、Java特有の演算子もあります。(++や&&など)
今回扱う、キャストもJava特有の演算子の一種です

そしてこキャストは、めちゃめちゃ計算順位が高いです。
具体的には上から2番目で、カッコ()の次に計算順位が高いです。


これにより、上記例文では、totalを先にint型にキャストし、
それをtotal*taxの結果(double型)と計算しています。


結局右辺がdouble型になってしまい、
double型の数字をint型の変数に代入しようとしている
ため
コンパイルエラーが発生してしまうのです。

キャストの計算順位はカッコ()の次に高いです(2番目)

キャストはめちゃくちゃ強いです。


そのため、使い方には注意する必要があります。

使うときは、あらかじめ”変換したい値”を作成することを意識しましょう。
キャストは最強です。
隣に何か値を持ってくると、すぐに計算を実行しやがります。

であれば、隣に置く値は完成している必要があります。
先ほどの例文を改善するとこうなります。

キャストもカッコ()にだけはかないません。
Javaの計算式において、カッコ()は計算順位が一番高いです。

税込み価格の計算式をカッコで括ることで、
キャストより前に計算することができます。

こうして、あらかじめ”変換したい値”を作成し、それをキャストの隣に
配置することで、確実に型変換を行うことができます!

型変換したければ、あらかじめ変換したい値を完成させましょう

他にも様々な方法がありますが、
最初のほうは、先に型変換させたい値を作ることを意識しましょう。

最初のうちは、キャストする用の変数を作ってもよいかもしれません。

大切なことは

”型変換する値をあらかじめ作成すること”

です。
キャストの計算順位を意識して、プログラムを作成しましょう!!

コメント

タイトルとURLをコピーしました