読みもの一覧に戻る

【忘れられないクソコード】for文、ちゃんと覚えようね。。。

ライター: 葛山 宏樹

2016年07月19日

Pc5

クソコードって知ってますか?

エンジニアとして働いていれば何度も目にしたことがありますよね!

バグになってしまい、大変な思いをしたり、業務への影響は大したことなかったけど、ぶっ飛びすぎてて唖然となったり。。。

今日はそんなクソコードを紹介していきたいと思います。

※今回は全てPHPで書きましたが、決してPHPerをdisってるわけではありません。


++はオシャレじゃないよ

<?php
for($i = 0; $i++ < 10; $i++){
  echo $i++; //ここは例
}

「なぜか10回ループしないんです」

「そうだね。++はオシャレでつけてるわけじゃないんだよ」

インクリメントを理解してないのはわかるんだけど、プログラミング初心者には「変数」や「演算子」の区別がついていないんですよね。

しっかり理解すれば大丈夫、業務じゃなくてよかったです。


コピペに頼った結果

<?php
for($i = 0; $i < 10; $i++){
  for($i = 0; $i < 10; $i++){
    /* 処理 */
  }
}

やっちゃいましたね!

スコープを理解していなかったのか変数を理解していなかったのかわかりませんが、雑な仕事をした結果です。


逆に難しいわ!goto分を使ったループ文

<?php
$i = 0;
a:
if($i++ < 10){
  /* 処理 */
  goto a;
}

驚きでした。for文を知らないのにgotoを知っていたのか。。。

勉強の仕方に問題があったのだろうか。

教えた人のせいなのか。

学校の授業ですぐさまつまずいてfor文習う前に不登校になり、途中から復帰してgotoを学んだのか。

色々な憶測が飛びますが、この人が書いたこの後のコードが気になるところです。


まとめ

今回紹介したのは比較的おっちょこちょいなものが多いですが、まだまだクソコードはたくさんあるのでこれからも紹介していきたいと思います。

クソコードを堂々とdisれるとストレス発散になりますので今度交流会でもクソコード選手権をやりたいと思います。