数字を0から数える病
数字を0から数える病(すうじを0からかぞえるびょう)とは、プログラマーに見られる病気である。
概要[編集 | hide | hide all]
患者は普通なら最初の一つは「1」であるところ、「0」から数えてしまうという。主に番号を数える際に発症し、物の個数を数える時にはあまり発症しない[0 1]のが特徴である。なお、プログラミング言語を感染媒体とするためプログラマー以外が感染することは非常に珍しい。
主な症状[編集 | hide]
- 平仮名の1番目の文字は「い」だと思ってしまう。もちろんいろは順ではない。
- 「お」を平仮名の4番目だと思ってしまう。
- 「問5を解け」と言われて問題番号がなんらかの理由で隠れている場合、問6を解いてしまう。
- 道案内をするべく「×個目の交差点を〜」という説明をするが、案の定間違っている。
- 「なんで20人のクラスに出席番号20番がおるん!?」
- マグマは、モノイド派。
- 数列の初項を第0項だと思ってしまう。
原因[編集 | hide]
原因はプログラミング言語の配列にある。多くのプログラミング言語では配列の1つ目のインデックス[1]は0であり、たとえば
['あ','い','う','え','お']
という配列aにおいてa[0]='あ'なのだ。これを普段から意識していると、現実世界でも同じように0から数えてしまうのだ。
治療法[編集 | hide]
- 配列を作る際、最初に意味のない何かを入れる
- 擬似的に配列の1つ目のインデックスを0ではなくし1にしてしまえ、という案。一部のプログラミング教材でたまに見受けられる対処法だが、Length値が正しく評価されないなどの問題が生じるため推奨されない。特に複数人での開発時はバグの元になるので絶対に避けるべきである。
- また、例えばひらがなのあ行を書こうとして、「nullあいうえお」[2]と書くなどの別の症状が出る可能性がある。
- プログラミングをやめる。
- 根本的な解決になる。が、人によってはプログラミング中毒を治療する必要がある。
- 配列が1から始まる言語を使う。
- COBOL、Fortran、BASIC、Lua、Rなど。
- インデックスの使用をやめる。
- foreach文やLINQ等による各種処理[3]などにより、古典的なfor文などで使われるインデックスを排除する。
- 場合によっては数値インデックスが使えないDictionaryなどを使用することも選択肢。
- Count/Lengthの値を思い出す。
- 0から始まる配列でも、配列長は1から数えたサイズになる。このことを活かして、どうしてもインデックスが必要な場合はCount/Lengthを活用できないか検討する。
- 気をつける。
- これに尽きる。
脚注[編集 | hide]
- ↑ 無論、稀に発症する。
関連項目[編集 | hide]
この項目「数字を0から数える病」は、初版投稿者によって先編集権がネタでつよく主張されています。なので初版投稿者のお許しもなく「無許可での白紙化や破壊コードの挿入」等を行った場合は「荒らし」とみなされ、独裁者達にブロックされるかもしれませんので、ご注意ください。どうしても自分勝手に記事を投下したい場合は「数字を0から数える病 (0)」のようにフォークを立てて、あとは適当に頑張って下さい。