Java/アンダースコア

出典: フリー教科書『ウィキブックス(Wikibooks)』

数値リテラルの中のアンダースコア[編集]

プログラミングにおける数値リテラルの中のアンダースコアは、数値を区切るために使用される特殊な記号です。この機能は、主に可読性を向上させるために導入されています。

大きな数値や複雑な数値を表す際に、アンダースコアを使用して数値をグループ化することで、コードがより見やすくなります。これにより、数値の桁を簡単に識別しやすくなります。

具体的には、以下のような場面でアンダースコアが使用されます。

  1. 整数リテラル: 例えば、1_000_000というように、大きな整数を区切る場合に使用されます。
  2. 浮動小数点数リテラル: 例えば、3.14_15というように、浮動小数点数を区切る場合に使用されます。
  3. バイナリリテラル: 例えば、0b1101_1010_0110のように、バイナリリテラルを区切る場合に使用されます。

アンダースコアは、数値リテラルの中で連続して使用することができますが、数値の先頭や末尾、小数点の前後、およびリテラルの接頭辞または接尾辞の直前に配置することはできません。また、プログラミング言語によってはアンダースコアの使用が制限される場合がありますので、言語の仕様に従って使用する必要があります。

Javaにおける数値リテラルの中のアンダースコア[編集]

Javaにおける数値リテラルの中のアンダースコアは、数値を区切るために使用される特殊な記号です。Javaでは、整数や浮動小数点数のリテラル内でアンダースコアを使用して、数値をグループ化することができます。これにより、数値の桁を視覚的に分けることができ、可読性が向上します。

以下に、Javaにおける数値リテラルの中のアンダースコアの使用例を示します。

  1. 整数リテラル:
    int million = 1_000_000;
    long creditCardNumber = 1234_5678_9012_3456L;
    int binaryNumber = 0b1101_1010_0110;
    
  2. 浮動小数点数リテラル:
    float pi = 3.14_15F;
    double bigNumber = 1_000_000.123_456;
    

アンダースコア(_)は、数値の先頭や末尾、小数点の前後、およびリテラルの接頭辞または接尾辞の直前に配置することができます。ただし、連続したアンダースコアや数値の先頭や末尾にアンダースコアを配置することはできません。また、アンダースコアを使用することで数値の値は変わりませんが、コードの可読性が向上します。

JEP 213[編集]

Java Enhancement Proposal(JEP)は、Javaプラットフォームおよび言語の改善提案をドキュメント化するためのフォーマットです。数値リテラル内のアンダースコアに関連するJEPは、「JEP 213: Milling Project Coin」です。

JEP 213は、Java 7のリリースで導入されました。このJEPの目的は、Java言語のシンプルな機能を向上させることで、コードの可読性と生産性を向上させることでした。その一環として、整数リテラルおよび浮動小数点数リテラル内でのアンダースコアの使用が導入されました。

アンダースコアを使用することで、大きな数値や複雑な数値をより読みやすくすることができるようになりました。この機能は、プログラムのメンテナンスやデバッグの際に特に有用です。

JEP 213の提案として、アンダースコアを使用した数値リテラルの改善が行われ、Javaのコードの可読性が向上しました。