コードを読むことは、探偵の本を読むようなものであってはなりません(常に理解する必要があります)...
例:
Java:
iterate_rows:
for (int i = 0; i < maxi; ++i)
{
for (int j = 0; j < maxj; ++j)
{
if (i == 4 < maxi && j == 3 < maxj)
break iterate_rows;
else
continue iterate_rows;
}
}
break iterate_rowsが何をするのかを理解する必要はなく、読むだけです。
C ++:
//iterate_rows:
for (int i = 0; i < maxi; ++i)
{
for (int j = 0; j < maxj; ++j)
{
if (i == 4 < maxi && j == 3 < maxj)
goto break_iterate_rows;
else
goto continue_iterate_rows;
}
continue_iterate_rows:;
}
break_iterate_rows:;
goto break_iterate_rowsは、breakiterate_rowsの表示バージョンです
gotoとラベルの使用をこの種のコードのみに限定すると、意図を理解できなくなります。この種のコードでgotoとラベルの使用を制限すると、コードを分析したり理解したりするのではなく、コードを読むだけになります。あなたは邪悪なプログラマーであると非難されることはありません。
そして、この種のコードでgotoを本当に制限すれば、それらのdarngotosがコードで何をするのかを理解する必要がないという習慣を身につけることができます。追加の利点は、ブール値を導入して追跡する必要がないことです(これにより、コードが検出され、少し読みにくくなり、gotoを回避するという目的そのものが無効になります)
PS
それらのラベルをコメント(ループの前)とペアにします。gotoステートメントでこれらの行を過ぎて読むまでに、それらのgotoの意図をすでに知っています。