[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

マジックナンバー (magic number)

pointこの用語のポイント

pointハードコーディングされた値だよ

point何らかの意味を持つけど、パッと見では分からないよ

point使わない方が無難だよ

スポンサーリンク

簡単に書くよ

マジックナンバー (magic number)とは

ハードコーディングされた(ソースコードの中に直接埋め込まれた)何らかの意味を持つ値のこと
です。

image piyo

詳しく書くよ

ソースコードは「人間語で書いたプログラムの元ネタ」ね。
人間様は、ソースコードにあれやこれやの命令を書くことで、プログラムを作ります。

マジックナンバー

ハードコーディングは「外に出すべき処理や値をソースコードの中に直接埋め込むこと」です。
例えば、商品単価と個数を渡すと税込の金額が返ってくる処理があった場合

関数 金額計算(商品単価, 個数){
 消費税率 = 0.08

 金額 = 商品単価×個数 + 商品単価×個数×消費税率

 return 金額
}


のように消費税率の「0.08」を分けて書くこともできれば

関数 金額計算(商品単価, 個数){

 金額 = 商品単価×個数 + 商品単価×個数×0.08

 return 金額
}


のように直接処理の中に入れ込んじゃうこともできます。
この2つの処理のうち、後者の「0.08」を直接処理の中に入れ込んじゃう形式をハードコーディングと言います。

そして、処理の中に直接入れ込んじゃった値「0.08」がマジックナンバーです。

「0.08」であれば、まだ「消費税かな?」と予想が付くかもしれませんが「1」とか「2」とかの数字が出てきたら何を指すのか分かりませんよね。
何の意味があるか分からないけど取りあえず動くために必要な値、マジックなナンバーだからマジックナンバーです。

一般的には、マジックナンバーは使わない方が良いとされています。
パッと見で処理の内容が分かりにくいですからね。

個人で趣味で作っているプログラムならともかく、お仕事で作るプログラムの場合はマジックナンバーを使ってはいけません。
一部の人たちから、へぼプログラマ呼ばわりされる可能性が高まります。

image piyo2

一言でまとめるよ

まぁ「マジックナンバー」って単語が出てきたら「ソースコードの中に直接埋め込んだ値のことなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク