問題は、いくつかのコードを N 回実行し、他のコードを N+1 回実行する必要がある while ループに関するものです。文字列の連結についてではなく、これを悪いコードで短い例として使用します。
例を挙げて私の質問を説明しましょう。
たとえば、「\ n」で接着して、N + 1個の文字列を連結したいとします。その場合、N+1 行のテキストになりますが、「\n」を N 回追加するだけで済みます。
一部のコードを N 回実行し、他のコードを N+1 回実行する必要がある、このタイプのループのボイラープレート ソリューションはありますか? 文字列を連結するための解決策を求めているのではありません! それは単なる(悪い)例です。私は一般的な解決策を探しています。
これに関する問題はコードの重複であるため、例をコーディングするには、次のようにします (悪い疑似コード、StringBuilder などを使用する必要があることはわかっています)。
String[] lines = <some array of dimension N+1>;
String total = lines[0];
for (int i = 1; i < N + 1; i++){
total += "\n" + lines[i];
}
もちろん、N+1 回実行する必要があるコードが大きくなると、問題はさらに悪化します。それから私は次のようなことをします
codeA(); // adding the line of text
for (int i = 1; i < N + 1; i++){
codeB(); // adding the "\n"
codeA();
}
重複を削除するには、ループ内でチェックすることによってこれを別の方法で行うこともできますが、最初の繰り返しでのみ false になるため、チェックが事前に決定されていることを事前に知っているため、これは非常に愚かです。
for (int i = 0; i < N + 1; i++){
if (i > 0){
codeB(); // adding the "\n"
}
codeA();
}
これに対する解決策はありますか?
人々は以前にこれに出くわしたにちがいないと思います。これに対する美しい解決策があるかどうか疑問に思っています。