Gotoを避けなければなりません。しかし、あなたが醜いコードなしでそれを避けることができない場合があります。「ループ後にコードを実行しないでください」
ループ内の式は、真である、ループを破る必要があります。
は、このケースを考えてみましょう。ループ内の式が常にfalseの場合、ループ終了後、コードを実行する必要があります。
gotoなしでこれを行うには良い方法がありますか?
for (int x = 0; x < input.length; ++x)
if (input[x] == 0) goto go_here; // this is pseudocode. goto is not allowed in java
// execute code
go_here:
私のソリューションはこれです:
both:
do {
for (int x = 0; x < input.length; ++x)
if (input[x] == 0) break both;
// execute code
} while(false);
別の解決策はこれです:
boolean a = true;
for (int x = 0; x < input.length; ++x)
if (input[x] == 0) { a = false; break; }
if (a) {
// execute code
}
(後藤と同様に)別の非効率的な解決策はこれです:
try {
for (int x = 0; x < input.length; ++x)
if (input[x] == 0) throw new Exception();
// execute code
} catch(Exception e) {}
あなたは正確に何を言おうとしていますか? 'goto'文はJavaでは許されません。しかし、それは予約語です。 – Logan
最初のケースでは、break、loopsを実行してコードを実行しないためです。 2番目のケースでは、ループは正常終了し、コードが実行されます。 – Chameleon
ジョーになるの? http://thedailywtf.com/articles/do-while-false – clcto