開発環境VB2008
Dim valeu As Integer
If Integer.TryParse(TextBox1.Text, valeu) Then
For i As Integer = 0 To valeu
i += 1
Label1.Text += i.ToString
Next
End If
valeu=5を代入すると、結果が1,2,3,4,5と予測してましたが
1,3,5と出力されます。
なぜ?
If の行で [F9] を押すと、そこにブレークポイントが設置され、
実行時に一時停止するようになります。
一時停止後、[F10](設定によっては[F8])を押すと、一行ずつ
ステップ実行する事ができますので、それぞれの変数の内容が
どのように変化するのかを見ていけば、理由が分かるかと思います。
# なお一般的には、For ループ中でループカウンタ変数の値を
# 直接編集するのは、あまり良い作法ではありません。
For文って、
1.初期化
2.条件判断し、真ならループ内を実行、偽なら終了
3.ループ内処理後の処理、ループ変数のインクリメント後、2を実行
ってなってた気がしますが・・・
他人のふんどしが書いたソースを実行すれば、そりゃぁ、1,3,5になるのは当たり前ですね。
だって、ループ内でインクリメント実施してそのうえ、For文内で1繰り返し処理ごとにインクリメントしてるんだもん。
間違いかもしれない くんへ
魔界の仮面弁士さんのようにきちんとした言葉使いでコメントするように
心がけてください。
相手を揶揄するようなコメントは貴方自身の品性が貧しいことを
全世界に証明していることになってしまいます。
お互いに気をつけようね
(^-^)
私の勉強不足でした。有り難うございました。
ツイート | ![]() |