今回は、そのFizzBuzz問題を取り上げます。実装したソースコードにバグを埋め込んであります。FizzBuzz問題が本当に都市伝説なのか自分でチェックしつつ、デバッグ能力を鍛えていただければ幸いです。仕様から出力結果を予想し、どこにバグがあるか推察してください。
5分考えても分からない場合、「プログラミングの素養があれば5分以内でFizzBuzz問題がコーディングできるはず」という「根拠はないが漠然とした説得力の漂う見解」は、占星術のお告げと同じレベルであると考え、効率的かつ実践的にバグを見つけるため、自分の環境で実行するといいでしょう。
ソースコードを見てバグを検出できなければ、力まかせに実行することも有効です。いろいろな方向に弾を撃ちましょう。実行すると、整合性に欠ける部分が見つかるはずです。なお、本シリーズのプログラムは、全て「Visual Studio2010」のコンソールアプリケーションで実行を確認したものを使用しています。
以下の条件に従い、1〜100までの数をコンソールに表示せよ
#include <stdio.h> int main(void) { int i; for (i = 1; i <= 100; i++) { if ( ((i % 3) == 0) && ((i % 5) == 0)){ printf("FizzBuzz\n"); } else if ((i % 3) == 0) { printf("Buzz\n"); } else if ((i % 5) == 0) { printf("Fizz\n"); } else { printf("%d\n",i); } } }
Copyright © ITmedia, Inc. All Rights Reserved.