C++でforループを作成したいとしますが、決定された条件に加えて、いつ、またはループを止めるべきかも知っています。そのような条件は、必ずしもハードコーディングされる必要はなく、ループがそのような決定値を常に有するべきであることに留意されたい。これはほんの一例で、おそらくランダムなループや、実行時に内容が決定されるものには便利です。この例を単純にしておき、プログラミングにおける関連するタスクに適用できるソリューションに焦点を当てましょう。C++ forループを停止する「最良の」方法は何ですか?
この2つのソリューションを比較したいと思います。最初のものはbreak文を使用し、2番目のものは複数または結合条件を使用します。どれが効率性や信頼性の面でタスクを達成するための「最良の」または「正しい」方法であるか。どちらがバグに弱いのですか?別の解決策を提案してください。
const int MAX_SIZE = 10;
int myArray[MAX_SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// two ways to stop a loop
for (int x = 0; x < MAX_SIZE; x++) {
if (myArray[x] == 7) {
break;
}
cout << myArray[x] << “ “; // fixed
}
for (int x = 0; (x < MAX_SIZE) && (myArray[x] != 7); x++) {
cout << myArray[x] << “ “;
}
条件を1つの場所に保持し、実際のループコードが無関係な部分をクリアするので、2番目のフォームを選択します。私はこれが好みになると思う。 – user2296177
ループの動作が異なるようです。 xは0、myArray [0]は7に等しいとします。 – PaulMcKenzie
どちらの場合も毎回同じ数の比較をしています。私は、最初のものは読みやすいと思うが、誰もが標準の 'for'ループコードを光沢させ、第2の条件を特別なものとして見ることができるからだ。正直なところ、それはほんのちょっとしたことだと思う。 –