あなたが見逃しているのは、do...while上記の使用が 100%間違っているということです!
たとえば、Javaのdo...whileループは次のようになります。
do {
//something you want to execute at least once
} while (someBooleanCondition);
そこに2番目のブロックが完全に欠けているのがわかりますか?ステートメントが完全にwhile 終了する様子がわかりますか? つまり、 と の間のペアのコードが{...}実行され、テストされ、それが true の場合、コード ブロックが再度実行されます。そしてまた。そしてまた。false とテストされるまで。dowhile someBooleanConditionsomeBooleanCondition
この時点で、おそらく、両方の形式のループがある理由がわかるでしょう。上記のコードは次のように変換できます。
//something you want to execute at least once
while (someBooleanCondition) {
//something you want to execute at least once
}
ただし、このコードでは、同じ (潜在的に大きくて複雑な) コードを 2 回入力する必要があるため、さらに多くのエラーが発生する可能性があります。したがって、トップ テスト ループの代わりにボトム テスト ループが必要です。