2

Java Code Conventionsのセクション 10.3 には、次のように記載されています。

-1、0、および 1 を除いて、数値定数 (リテラル) を直接コーディングしないでください。これらは for ループでカウンター値として表示される可能性があります。

数値定数を「直接コーディング」するとはどういう意味ですか?

4

3 に答える 3

9

いわゆる「マジックナンバー」のことです。次のコードを確認してください。

float radians = 180/3.141;

float degreesInRadians = myDegrees/Math.PI;

どちらがより明確ですか?

于 2013-08-28T08:03:19.570 に答える
1

それらが実際に何であるかを定義せずに使用することを意味すると思います。たとえば、次のように述べる代わりに:

public static double PI = 3.14; //<-- Clearly defines the meaning of this value.

10 進数値を使用しているだけです。

double a = Math.pow(3.14 * r, 2); // <-- Does not define the meaning of 3.14

これによりコードが読みにくくなるため、避けるべき方法です。

于 2013-08-28T08:02:52.267 に答える