質問: true; } ```
回答: ``` while (!isLose) { let result = janken(); if (result === '結果はあいこでした。') { continue; } if (result === '勝ちました。') { win++; alert('ただいま「' + win + '」勝です。'); continue; } alert('連勝はストップです。記録は「' + win + '」勝でした。'); isLose = true; } ``` おそらくご理解されていないのは`continue`文なのではないかと思います。 > > continue 文は、現在のループまたはラベル付きループの現在反復中の文の実行を終了して、次の反復でループの実行を続けます。 > > continue - JavaScript | MDN > > > `continue`文はそれ以降の部分のコード実行を中止して、ループの先頭に戻ります。 なので、このコードは、以下のように動作します。 1. `result === '結果はあいこでした。'`の時、`continue`文によりループの先頭に戻ります。このループの周回はここで終わります。 2. 1の条件が成立しない場合は、ループの先頭に戻らず次のコードを実行します。 3. `result === '勝ちました。'`の時、諸々の処理をし、`continue`文によりループの先頭に戻ります。ループのこの周回はここで終わります。 4. 3の条件が成立しない場合は、ループの先頭に戻らず次のコードを実行します。 5. `alert('連勝はストップです。記録は「' + win + '」勝でした。');` `isLose = true;`を実行しループの周回を終わります。つまり、1と3の条件が成立しない時だけ、このコードは実行されます。`'負けました。'`の場合もこれに含まれます。 なので、 > > まず`isLose = true`は、`return '負けました。'`と同義でしょうか。 > > > の答えは、「いいえ」です。