[VB] For i = 0 To i < 100
@Benshi_Orator: コードレビューなう。『For i = 0 To i < 100』って何ぞ。それじゃあ、必ず1回(あるいは0回)しか実行されないよー。 [http://twitter.com/Benshi_Orator/statuses/124358187368460288]
ぬぁっ!? Option Strict Off (既定値) だと、 コンパイル通るんだ!!
ほんと、 落とし穴満載の言語だなw
Sub Main()
Dim i As Integer = 100
For i = 0 To i < 100
Call Console.WriteLine("i = {0}", i)
Next
'出力:
'i = 0
Call Console.ReadKey()
End Sub
何度も言うけど、 C# や F# より VB の方が、 こういった落とし穴をたくさん理解しなきゃいけないぶんだけ難しい。
※ たとえば、 Nothing は null じゃないという話は以前に書いた。
ちなみに、 上のコード例で 1回だけ "i = 0" が出力されたということは、 ループ変数 i が初期化される (0 が代入される) よりも前に、 右側の i < 100 が評価されたということ。
i の宣言行を Dim i As Integer = 0
に変えると、 ループは 1回も実行されない。
| 固定リンク
« [MEMO] ファンクションポイントの算出法、あれこれ | トップページ | [VS11] vNext への道 ~ Windows 8 と Visual Studio 11 リリース日程を推測してみる »
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
この記事へのコメントは終了しました。
コメント