while 文と do while 文を合わせて使った時の挙動がおかしいです

変数のスコープに注意しましょう。
2022年4月24日
ユーザー

while文と do while文それぞれについては理解しました。
それとは別に、分からない出力がされたので質問させていただきます。

let HP = 100;
  while (HP > 0) {
    console.log(`残りの体力は${HP}だ`);
    HP -= 10;
  }

  do {
    console.log(`残りの体力は${HP}だ`);
    HP -= 10;
  } while (HP > 0);

これが出力されると。

残りの体力は100だ
残りの体力は90だ
残りの体力は80だ
残りの体力は70だ
残りの体力は60だ
残りの体力は50だ
残りの体力は40だ
残りの体力は30だ
残りの体力は20だ
残りの体力は10だ
残りの体力は0だ

となりました。
予想では100から90, 80 ...と10までを繰り返し出力し、もう一度100から10までが繰り返し出力して終わりだと思っていたのですが。
何故、100から10までが二度でなく一度しか出力されていないのでしょうか?
この「残りの体力は0だ」はどういった理由で出力されているのでしょうか。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?