| えーと、まずコードについてなのですが。
> x += i; //数を100まで加算する とありますが、そもそも x の値が初期化されていませんよ。 エラーの直接の原因はこれでしょうかね。
でも、そこを直したからと言って、期待通りの結果にはならないと思います。 ぽぴ王子も指摘されていますが、 > 自分が何を目的として、何を書こうとしているのかをしっかりと > 把握した上で、それを実現するためにはどうすればいいかを考える > ことが大事です(アルゴリズムを考える、ということです)。
前回と比べて、if 文の中が複雑になっていますが、まず考えるべきところはそこではないと思います。 コードを書くテクニックの話ではなく、何をつくろうとしているかをもう一度整理した方がよいかと。
たとえば、変数として、m,i,x の3つが使われていますが、これらの意味と使い分けはなんですか? かえって複雑になっていませんか? #わたしもついこの間このプログラムを書いてみましたが、変数は1つで十分だと思いますよ。
i は 0 から 99 までループごとに増えていきますよね?では、それを都度 x に加算するとどういう値になると思われますか?
「数字を文字列に変換して、さらにその文字列を置換する」ということをされようとしておられますが、3の倍数のときだけ "k" という文字列を設定すればよいだけではないのでしょうか?
変数mの「何」を"k"に置き換えられようとしているのでしょうか?
あと、TextBox1.Text への代入を複数回すると、最初の代入は上書きされますよね?最初の方の代入には意味がなくなりますよ。
失礼かもしれませんが、コードを書いてみて、動かなかったら一部直して、それでも動かなかったからさらに直して、という形で自分の書いたコードに振り回されている印象を受けます。 落ち着いて、自分がやろうとしていること、その手順をフローチャートなりメモにまとめてみて、それとコードをつきあわせてみてはどうでしょうか? それでもわからなかったら、FizzBuzz のキーワードで解答例がいっぱい見つかると思いますので、それと自分のコードをつきあわせて何が違っているのかを見てみるとよいかもしれません。
#あ、この辺はぽぴ王子も言われてますね。
|