チャレンジ問題【Java-11】~計算の文⑥型変換~

Javaチャレンジ問題

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

こんぶ
こんぶ

こんにちは。こんぶです。

今日は、「【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】命令実行の文

それでは、こんぶはじゃ~

コメント

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