003-006-011
キャスト演算子:連鎖変換と型昇格
上級
問題説明
キャスト演算子:連鎖変換と型昇格
この問題では: キャストの位置を変えた3つの式 (double)a / b * c、(double)(a / b) * c、a / b * (int)c を計算し、各結果を標準出力に表示するプログラムを作成します。
学習目標: 複数の型変換を組み合わせた計算での型昇格ルールを理解し、意図した結果を得るためのキャスト配置を習得する
概要
複数の異なる型を含む計算では、Javaの型昇格(Type Promotion)ルールにより、自動的に大きい型に変換されます。また、明示的なキャストの位置によって結果が変わることがあります。
仕様
以下の処理を実装してください:
- int型変数
aを 7 で初期化 - int型変数
bを 3 で初期化 - double型変数
cを 2.5 で初期化 - 計算式
(double)a / b * cの結果を変数result1に格納 - 計算式
(double)(a / b) * cの結果を変数result2に格納 - 計算式
a / b * (int)cの結果を変数result3に格納 - 各結果を別々の行に出力
出力形式
5.833333333333334
5.0
4
ヒント
- キャストの位置により整数除算か浮動小数点除算かが決まります
- 7/3 は整数除算では2、浮動小数点除算では約2.333になります
テストケース例
※ 出力例はプログラミングの国際標準に準拠し英語で表示しています
入力:
期待される出力:
5.833333333333334 5.0 4
入力:
期待される出力:
5.833333333333334 5.0 4
入力:
期待される出力:
5.833333333333334 5.0 4
入力:
期待される出力:
5.833333333333334 5.0 4
入力:
期待される出力:
5.833333333333334 5.0 4
❌ テストに失敗したケースがあります
あなたの解答
現在のモード:● 自分のコード
99
1
2
3
4
5
6
7
8
9
10
›
⌄
⌄
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// ここにコードを書いてください
sc.close();
}
}
0 B / 5 MB
残り 9 回実行可能
