GOTOを使用する以外に、ループ内のコードを放棄して次のものに進める方法はありますか? GOTOは以下のコードで効率的な方法ですか?途中でループを前進させる方法
Do While x < 10
a = Int(Rnd * 100)
b = Int(Rnd * 100)
c = Int(Rnd * 100)
For n = 1 To 4
aa(i) = i * 2 + 4
bb(i) = i * 2 + 5
cc(i) = i * 2 + 6
Next
If a = b Then GoTo lastline
If a = c Then GoTo lastline
If b = c Then GoTo lastline
For i = 1 To 4
testa = (a = aa(i) Or a = bb(i) Or a = cc(i))
If testa Then GoTo lastline
testb = (b = aa(i) Or b = bb(i) Or b = cc(i))
If testb Then GoTo lastline
testc = (c = aa(i) Or c = bb(i) Or c = cc(i))
If testc Then GoTo lastline
Next
Debug.Print a & ","; b & ","; c
lastline:
x = x + 1
Loop
は 'Goto'を使用せずに、これを行うための方法がたくさんあります - 通常は、条件付きでブロックをスキップしたい場合'If Then'を使用するコード –
他の多くの言語で見られる' continue'文に相当するものはありません。単純な '' if''と同様に、 'GoTo'が動作します。 –
あなたが持っているものは十分に読みやすいです。ラベルとして 'lastline'ではなく' Continue'や 'NextIteration'を使うと、あなたの意図をさらにはっきりさせることができます。 –