カテゴリ: JavaSilver試験対策 更新日: 2025/12/05

Javaの数値リテラル表記を完全解説!初心者でも理解できるアンダースコアの使い方

012
Javaの数値リテラル表記とアンダースコア

先生と生徒の会話形式で理解しよう

生徒

「Javaで数値のリテラル表記にアンダースコアを使うと便利だと聞きました。でも、どうやって使うのか分からなくて…。」

先生

「アンダースコアは数値を見やすくするためのものですが、使い方にルールがあります。それを説明していきますね!」

生徒

「ルールがあるんですね!どんな場面で使えるのか教えてください。」

先生

「では、具体的な例を交えながら説明しましょう。」

1. 数値リテラルとアンダースコアの基本

1. 数値リテラルとアンダースコアの基本
1. 数値リテラルとアンダースコアの基本

Javaでは、数値リテラルの中にアンダースコア(_)を挟むことで、桁区切りを見やすくすることができます。例えば、次のような使い方が可能です。


public class NumberLiteralExample {
    public static void main(String[] args) {
        int largeNumber = 1_000_000; // 見やすい桁区切り
        float pi = 3.14_15F;         // 小数部にも使用可能
        System.out.println("Large Number: " + largeNumber);
        System.out.println("Pi: " + pi);
    }
}

出力:


Large Number: 1000000
Pi: 3.1415

アンダースコアは見た目を整えるためのもので、実際の計算には影響しません。

2. アンダースコアのルール

2. アンダースコアのルール
2. アンダースコアのルール

アンダースコアを使用する際の主なルールは以下の通りです。

  • 数値リテラルの先頭または末尾に使用できない。
  • 記号(.LF0b0x)の直前や直後に使用できない。
  • 適切な位置に挟むことで視認性を高める目的で使用する。

以下は、正しい使い方と間違った使い方の例です。


// 正しい例
int validNumber = 1_000_000;
float validFloat = 3.14_15F;

// 間違った例
int invalidStart = _100; // 先頭に使用
int invalidEnd = 100_;   // 末尾に使用
float invalidDot = 3_.1415F; // ドットの前後

3. コンパイルエラーの例

3. コンパイルエラーの例
3. コンパイルエラーの例

次の例では、アンダースコアの使い方を誤っているためコンパイルエラーになります。


public class InvalidExamples {
    public static void main(String[] args) {
        // 以下はコンパイルエラーになります
        // int invalidStart = _123456;
        // int invalidEnd = 123456_;
        // long invalidSuffix = 123_456_L;
        // float invalidDot = 3_.1415F;
        // int invalidHex = 0x_123;
    }
}

このようなエラーを避けるために、正しい使い方を意識しましょう。

4. アンダースコアの活用例

4. アンダースコアの活用例
4. アンダースコアの活用例

正しいアンダースコアの使い方を覚えることで、コードの可読性が向上します。以下はその活用例です。


public class CorrectUsage {
    public static void main(String[] args) {
        int binary = 0b1010_1010;   // 2進数リテラル
        int hex = 0xFF_EC_DE_5E;   // 16進数リテラル
        int largeDecimal = 1_234_567; // 10進数リテラル
        System.out.println("Binary: " + binary);
        System.out.println("Hexadecimal: " + hex);
        System.out.println("Decimal: " + largeDecimal);
    }
}

出力:


Binary: 170
Hexadecimal: 4293713502
Decimal: 1234567

これらの形式を活用することで、特に大きな数値や特殊な進数リテラルの読みやすさを改善できます。

5. まとめ

5. まとめ
5. まとめ

Javaの数値リテラルにおけるアンダースコアは、可読性向上のための便利な機能です。ただし、アンダースコアの使用にはルールがあるため、それを理解して正しく活用する必要があります。 特にリテラルの先頭や末尾、記号の前後に配置できない点は注意が必要です。また、数値リテラルの形式(2進数、10進数、16進数など)ごとに適切な位置に挿入することで、より見やすいコードを書くことができます。

アンダースコアを使えば、大きな数値を扱うときでも簡単に桁数を把握でき、誤りを減らすことができます。これを活用し、保守性の高いコードを書くことを心がけましょう。


public class SummaryExample {
    public static void main(String[] args) {
        int million = 1_000_000;
        long largeHex = 0xFF_AE_12_34L;
        float precisePi = 3.14_159F;
        System.out.println("Million: " + million);
        System.out.println("Large Hexadecimal: " + largeHex);
        System.out.println("Precise Pi: " + precisePi);
    }
}

出力例:


Million: 1000000
Large Hexadecimal: 4292070964
Precise Pi: 3.14159
先生と生徒の振り返り会話

生徒

「アンダースコアって便利ですね!使い方が分かればもっと読みやすいコードが書けそうです。」

先生

「その通りです!特に大きな数値を扱う場面では大活躍します。ただし、使い方のルールを守らないとコンパイルエラーになってしまうので注意してくださいね。」

生徒

「ルールがあることで、逆にミスが減らせそうです。勉強になりました!」

先生

「これからも、実際のプログラムで試して使い慣れていきましょう。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Javaの数値リテラルとは何ですか?アンダースコアの使い方も教えてください。

Javaの数値リテラルとは、プログラム内で直接指定する数値のことです。アンダースコアを使うことで桁区切りが視覚的に分かりやすくなり、コードの可読性が向上します。
JavaSilver試験対策の一覧へ
新着記事
FlutterのInheritedWidgetとは?仕組みと活用方法
FlutterのInheritedWidgetとは?仕組みと活用方法を初心者向けにやさしく解説
Blocパターンの仕組みと導入方法をわかりやすく解説
FlutterのBlocパターンを完全ガイド!初心者でもわかる状態管理と導入方法
Flutterのプロジェクト作成コマンドとディレクトリ構成を学ぼう
Flutterのプロジェクト作成コマンドとディレクトリ構成を学ぼう
Flutterのウィジェットとは?初心者向けに仕組みと使い方を解説
Flutterのウィジェットとは?初心者向けに仕組みと使い方を解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
Java のインターフェースとは?普通のクラスとの違いを学ぼう
Javaのインターフェースとは?普通のクラスとの違いを学ぼう【初心者向け解説】
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説