※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
こんにちは。こんぶです。
今日は、「【Java-11】計算の文⑥型変換」のチャレンジ問題を解いてみましょう!
今日の問題は【Java-11】の内容を元にしているので、復習してから挑戦してみてくださいね。
チャレンジ問題
①Javaの数値型の意味的な大小関係で小さいものから並べてください。(6種類)
②Javaの数値型の意味的な大小関係で「大きな型」の値を「小さな型」の変数に代入すると、どうなりますか?
③強制的な型変換を指示するものを何といいますか?
④キャストによる強制的な型変換はどのように記述しますか?
⑤byte型とshort型については、演算時にも無条件で強制的に何型に変換されますか?
⑥「double a = 60;」のように記載すると、どのように変換されてから代入されますか?
⑦int型のdayという変数に、double型である「5.5」を強制的にint型に変換して代入する場合どのように記載しますか?
⑧「3.0/2」を評価する場合、どのように自動的に変換してから評価されますか?
⑨「String text = “こんぶ” + 5;」を評価するとどのようになりますか?
⑩キャスト演算子を使用して「5.6789」を小数第2位以降を切り捨てるコードを記述してください。
解答
①byte型 < short型 < int型 < long型 < float型 < double型
②コンパイルエラー
③キャスト演算子
④「(変換先の型名) 式」
⑤int型
⑥「double a = 60;」のように記載すると、int型の値「60」をdouble型に自動的に変換してから「a」に代入されます。
⑦「int day =(int) 5.5;」
→この式の結果、dayには「5」が代入されることになります。
⑧「3.0/2.0」
→double型の「3.0」とint型の「2」の演算になるので、「大きな型」であるdouble型に統一され、「3.0/2.0」に自動的に変換してから評価されます。結果はdouble型で「1.5」となります。
⑨「こんぶ5」
→1つの式に数値型とString型の2種類のオペランドがある場合は、数値型をString型に自動的に変換してから、文字列として連結されます。
⑩「double number = (int)(5.6789 * 100) / 100.0;」 ※変数は「number」以外でも大丈夫です!
→この式では、100を掛けて「567.89」をintにキャストすることで小数点以下を欠損させ、その後100で割ることで欠損部分以外を最初の数値に戻しています。結果は「5.67」となります。このように、わざと欠損させたい時にはキャスト演算子を活用できます。
お疲れさまでした
どれくらい正解できましたか?
⑩の問題は少し難しかったのではないでしょうか?
知識の組み合わせで、色々なコードが書けるようになっていくと面白いので、最初は分からなくても何度も繰り返して理解していきましょう!
次の内容はこちらです→【Java-12】命令実行の文
それでは、こんぶはじゃ~
コメント