- ベストアンサー
VB Forから抜ける
Data1(1, 1) = "りんご" Data1(1, 2) = "みかん" Data1(2, 1) = "なし" Data1(2, 2) = "オレンジ" Data2(1, 1) = "バナナ" Data2(1, 2) = "みかん" Data2(2, 1) = "なし" Data2(2, 2) = "いちご" -------------------- Dim c, i As Integer For c = 1 To 2 For i = 1 To 2 If Data1(c, i) <> Data2(c, i) Then MessageBox.Show("異なります") GoTo goto1 End If Next Next goto1: ----------------- 言語 VB.NET Data1とData2 の中身が異なればアラートを出す。 (複数異なっていても1度のみアラートを出す) さて これを「GOTO」を使わないでする方法ってあるんでしょうか? 「EXIT Sub」はgoto1:の下にもコードがあるので使えません。 GoTo goto1を Exit For にしても 「i」 のループが抜けるだけです。 これを「C」のループを抜けるようなコードってあるんでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
基本的にはループ部分だけをサブルーチンにするのがいいと思います。 それ以外だとフラグを持たせてループが終わったあとに結果表示とか。 これだと1つ違いがあっても判定をし続けるので無駄ですが 量が多くなければ無駄といっても一瞬です。 どちらもGOTOを使うよりはいいと思います。 Dim f f = false For c = 1 To 2 For i = 1 To 2 If Data1(c, i) <> Data2(c, i) Then f = true End If Next Next If f Then MessageBox.Show("異なります") End If
その他の回答 (3)
- DESTROY11
- ベストアンサー率23% (804/3490)
For c = 1 To 2 For i = 1 To 2 If Data1(c, i) <> Data2(c, i) Then MessageBox.Show("異なります") c=3 i=3 'GoTo goto1 End If Next Next 間違いなく抜けます
お礼
ご回答ありがとうございました。
- hotosys
- ベストアンサー率67% (97/143)
こんなのはどうでしょうか? Do For c = 1 To 2 For i = 1 To 2 If data1(c, i) <> data2(c, i) Then MessageBox.Show("異なります") Exit Do End If Next Next Loop Until True またはその部分だけをサブルーチンにしてはどうでしょうか? Function checkData(ByVal data1(,) As String, ByVal data2(,) As String) As Boolean For c As Integer = 1 To 2 For i As Integer = 1 To 2 If data1(c, i) <> data2(c, i) Then MessageBox.Show("異なります") Return False End If Next Next Return True End Function を checkData(data1, data2) または Dim f As Boolean = checkData(data1, data1) などで呼び出せばいいと思います。 p.s. vb.netでは Dim c, i As Integer For c = 1 To 2 For i = 1 To 2 としなくても For c As Integer = 1 To 2 For i As Integer = 1 To 2 などと宣言と使用を同時にできるようです。
お礼
ご回答ありがとうございました。
- ShowMeHow
- ベストアンサー率28% (1424/5027)
boo = false For c = 1 To 2 For i = 1 To 2 If Data1(c, i) <> Data2(c, i) Then MessageBox.Show("異なります") boo = true exit for End If Next if boo = true then exit for Next とか、
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございました。