Java | 数値リテラルに桁区切り文字(_)を使う方法

Java Java
スポンサーリンク

このファイルを そのまま保存して実行すると、練習問題と出力結果、間違った例の注意点を確認できます。

public class UnderscoreExample {
    public static void main(String[] args) {
        System.out.println("=== 練習問題 ===");

        // 問題1: 1,000,000 を桁区切りを使って書いてみよう
        int q1 = 1_000_000;
        System.out.println("Q1: " + q1);

        // 問題2: 12,345,678 を桁区切りを入れて書いてみよう
        int q2 = 12_345_678;
        System.out.println("Q2: " + q2);

        // 問題3: 2進数 11011010 を桁区切りを入れて書こう
        int q3 = 0b1101_1010;
        System.out.println("Q3: " + q3);

        // 問題4: 16進数 0xABCD を桁区切りを入れて書こう
        int q4 = 0xAB_CD;
        System.out.println("Q4: " + q4);

        // 問題5: 小数 3.14159265 を桁区切りを入れて書こう
        double q5 = 3.14_15_92_65;
        System.out.println("Q5: " + q5);

        // 問題6: 1,234 を間違った場所に _ を入れるとコンパイルエラーになる例
        // int q6 = _1_234; // ❌ コメントアウト
        System.out.println("Q6: int q6 = _1_234; はエラーになる");

        // 問題7: 1234_ を使った間違い例
        // int q7 = 1234_; // ❌ コメントアウト
        System.out.println("Q7: int q7 = 1234_; はエラーになる");

        // 問題8: 小数点の前後に _ を使った間違い例
        // double q8 = 123._456; // ❌ コメントアウト
        System.out.println("Q8: double q8 = 123._456; はエラーになる");

        // 問題9: 正しい小数の桁区切り
        double q9 = 1_234.567_89;
        System.out.println("Q9: " + q9);

        // 問題10: 大きな数を3桁ごとに見やすく書く
        long q10 = 123_456_789_012L;
        System.out.println("Q10: " + q10);

        System.out.println("\n=== 練習問題 解説 ===");
        System.out.println("Q1〜Q5, Q9, Q10: _ は見やすくするだけで出力には影響なし");
        System.out.println("Q6〜Q8: 数字の先頭・末尾や小数点の前後に _ を入れるとコンパイルエラー");
    }
}
Java

説明・解説ポイント

  1. アンダーバー _ は桁を区切るだけ
    • コードの可読性向上に使う
    • 実行結果には _ は出ない
  2. 整数・浮動小数点・2進数・16進数すべてに使用可能
  3. 使えない場所
    • 数字の先頭・末尾
    • 小数点の直前・直後
  4. 長い数は3桁ごとに区切るのが目安
    • 例: 123_456_789
タイトルとURLをコピーしました