JavaScriptにおけるフラグなしループのエラー
ある数値があるとします:
let num = '12345';
この数値に特定の数字が含まれているか確認してみましょう。 あるプログラマーは、上記を実装するコードを既に書いています:
for (let digit of num) {
if (digit === '3') {
console.log('ある');
} else {
console.log('ない');
}
}
しかし、このコードは正しく動作せず、
配列の各要素に対して 'ある' または
'ない' を出力します。
必要なのは、結果を1回だけ出力することです。
この場合、ループと組み合わせた問題は、
フラグを使用してのみ解決できます:
let hasDigit = false; // フラグ
for (let digit of num) {
if (digit === '3') {
hasDigit = true;
break;
}
}
if (hasDigit) {
console.log('ある');
} else {
console.log('ない');
}