質問編集履歴

4 バッククォートの修正

Mirage

Mirage score 4

2019/08/13 13:44  投稿

javascript ジャンケンゲームの質問です。
javascript初心者です。お世話になります。
初心者向けテキストで以下のようなジャンケンの繰り返しの例がありましたが、最後の段落のwhile文で
```
let isLose = false;
while (!isLose){
isLose = true;
```
のところがよくわかりません。
まず   
```
isLose = true
```
は、
```
return '負けました。'
```
 と同義でしょうか。またそれまで
```
isLose
```
というのが出てきていないのに、なぜ 
```
isLose = true
```
 と 
```
return '負けました。'
```
を関連付けて読み取ることができ、繰り返しをストップできるのかがよくわかりません。
まず ```isLose = true```は、 ```return '負けました。'``` と同義でしょうか。
またそれまで```isLose```というのが出てきていないのに、なぜ ```isLose = true``` と ```return '負けました。'```を関連付けて読み取ることができ、繰り返しをストップできるのかがよくわかりません。
そのところをご解決いただければ幸甚でございます。何卒よろしくお願い申し上げます。
 
 
 
(以下テキスト文です)
```
function janken () {
 /* 定数定義 ************************/
 // ジャンケンの手の番号を設定
 const GU   = 1;
 const CHOKI = 2;
 const PA   = 3;
 /* 関数定義 ************************/
 // 人間に手を入力してもらう機能
 function getHumHand() {
   let hum = prompt('半角数字で1~3の数字を入力してください。\n\n' + GU + ':グー\n' + CHOKI + ':チョキ\n' + PA + ':パー');
   hum = parseInt(hum, 10);
   if (hum !== GU && hum !== CHOKI && hum !== PA) {
     return undefined;
   } else {
     return hum;
   }
 }
 // コンピュータの手を決める
 function getComHand() {
   return Math.floor(Math.random() * 3) + 1;
 }
 // コンピュータの手の名前を取得
 function getHandName(num) {
   switch (num) {
     case GU:
     return 'グー';
     case CHOKI:
     return 'チョキ';
     case PA:
     return 'パー';
   }
 }
 // 結果の判定
 function getResult(com, hum) {
   if (hum === com) {
     return '結果はあいこでした。';
   } else if ((com === GU && hum === PA) || (com === CHOKI && hum === GU) || (com === PA && hum === CHOKI)) {
     return '勝ちました。';
   } else {
     return '負けました。';
   }
 }
 // 最終的な結果のメッセージ
 function getResultMsg(com, hum) {
   return getResult(com, hum) + 'コンピュータの出した手は「' + getHandName(com) + '」でした';
 }
 /* 実行する処理 ************************/
 let hum = getHumHand();
 if (!hum) {
   alert('入力値をうまく認識できませんでした。ブラウザを再読込すると、もう一度挑戦できます。');
 } else {
   let com = getComHand();
   alert(getResultMsg(com, hum));
   return getResult(com, hum);
 }
}
let win = 0;
let isLose = false;
while (!isLose) {
 let result = janken();
 if (result === '結果はあいこでした。') {
   continue;
 }
 if (result === '勝ちました。') {
   win++;
   alert('ただいま「' + win + '」勝です。');
   continue;
 }
 alert('連勝はストップです。記録は「' + win + '」勝でした。');
 isLose = true;
}
```
  • JavaScript

    37997 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

3 バッククォートの追加

Mirage

Mirage score 4

2019/08/13 13:39  投稿

javascript ジャンケンゲームの質問です。
javascript初心者です。お世話になります。
初心者向けテキストで以下のようなジャンケンの繰り返しの例がありましたが、最後の段落のwhile文で
```
let isLose = false;
while (!isLose){
isLose = true;
```
のところがよくわかりません。
まず 
```
isLose = true
```
は、
```
return '負けました。'
```
 と同義でしょうか。またそれまで
```
isLose
```
というのが出てきていないのに、なぜ 
```
isLose = true
```
 と 
```
return '負けました。'
```
を関連付けて読み取ることができ、繰り返しをストップできるのかがよくわかりません。
そのところをご解決いただければ幸甚でございます。何卒よろしくお願い申し上げます。
(以下テキスト文です)
```
function janken () {
 /* 定数定義 ************************/
 // ジャンケンの手の番号を設定
 const GU   = 1;
 const CHOKI = 2;
 const PA   = 3;
 /* 関数定義 ************************/
 // 人間に手を入力してもらう機能
 function getHumHand() {
   let hum = prompt('半角数字で1~3の数字を入力してください。\n\n' + GU + ':グー\n' + CHOKI + ':チョキ\n' + PA + ':パー');
   hum = parseInt(hum, 10);
   if (hum !== GU && hum !== CHOKI && hum !== PA) {
     return undefined;
   } else {
     return hum;
   }
 }
 // コンピュータの手を決める
 function getComHand() {
   return Math.floor(Math.random() * 3) + 1;
 }
 // コンピュータの手の名前を取得
 function getHandName(num) {
   switch (num) {
     case GU:
     return 'グー';
     case CHOKI:
     return 'チョキ';
     case PA:
     return 'パー';
   }
 }
 // 結果の判定
 function getResult(com, hum) {
   if (hum === com) {
     return '結果はあいこでした。';
   } else if ((com === GU && hum === PA) || (com === CHOKI && hum === GU) || (com === PA && hum === CHOKI)) {
     return '勝ちました。';
   } else {
     return '負けました。';
   }
 }
 // 最終的な結果のメッセージ
 function getResultMsg(com, hum) {
   return getResult(com, hum) + 'コンピュータの出した手は「' + getHandName(com) + '」でした';
 }
 /* 実行する処理 ************************/
 let hum = getHumHand();
 if (!hum) {
   alert('入力値をうまく認識できませんでした。ブラウザを再読込すると、もう一度挑戦できます。');
 } else {
   let com = getComHand();
   alert(getResultMsg(com, hum));
   return getResult(com, hum);
 }
}
let win = 0;
let isLose = false;
while (!isLose) {
 let result = janken();
 if (result === '結果はあいこでした。') {
   continue;
 }
 if (result === '勝ちました。') {
   win++;
   alert('ただいま「' + win + '」勝です。');
   continue;
 }
 alert('連勝はストップです。記録は「' + win + '」勝でした。');
 isLose = true;
}
}
```
  • JavaScript

    37997 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

2 バッククォートと位置修正しました。

Mirage

Mirage score 4

2019/08/13 12:37  投稿

javascript ジャンケンゲームの質問です。
javascript初心者です。お世話になります。
初心者向けテキストで以下のようなジャンケンの繰り返しの例がありましたが、最後の段落のwhile文で
'''let isLose = false;'''
'''while (!isLose)'''
'''isLose = true'''
```
let isLose = false;
while (!isLose){
isLose = true;
```
のところがよくわかりません。まず 
のところがよくわかりません。
まず 
'''isLose = true''' 
```
isLose = true
```
は、
'''return '負けました。''''
```
return '負けました。'
```
 と同義でしょうか。またそれまで
'''isLose'''
```
isLose
```
というのが出てきていないのに、なぜ 
'''isLose = true'''
```
isLose = true
```
 と 
'''return '負けました。''''
```
return '負けました。'
```
を関連付けて読み取ることができ、繰り返しをストップできるのかがよくわかりません。
そのところをご解決いただければ幸甚でございます。何卒よろしくお願い申し上げます。
(以下テキスト文です)
 
 
 
function janken () {
 /* 定数定義 ************************/
 // ジャンケンの手の番号を設定
 const GU   = 1;
 const CHOKI = 2;
 const PA   = 3;
 /* 関数定義 ************************/
 // 人間に手を入力してもらう機能
 function getHumHand() {
   let hum = prompt('半角数字で1~3の数字を入力してください。\n\n' + GU + ':グー\n' + CHOKI + ':チョキ\n' + PA + ':パー');
   hum = parseInt(hum, 10);
   if (hum !== GU && hum !== CHOKI && hum !== PA) {
     return undefined;
   } else {
     return hum;
   }
 }
 // コンピュータの手を決める
 function getComHand() {
   return Math.floor(Math.random() * 3) + 1;
 }
 // コンピュータの手の名前を取得
 function getHandName(num) {
   switch (num) {
     case GU:
     return 'グー';
     case CHOKI:
     return 'チョキ';
     case PA:
     return 'パー';
   }
 }
 // 結果の判定
 function getResult(com, hum) {
   if (hum === com) {
     return '結果はあいこでした。';
   } else if ((com === GU && hum === PA) || (com === CHOKI && hum === GU) || (com === PA && hum === CHOKI)) {
     return '勝ちました。';
   } else {
     return '負けました。';
   }
 }
 // 最終的な結果のメッセージ
 function getResultMsg(com, hum) {
   return getResult(com, hum) + 'コンピュータの出した手は「' + getHandName(com) + '」でした';
 }
 /* 実行する処理 ************************/
 let hum = getHumHand();
 if (!hum) {
   alert('入力値をうまく認識できませんでした。ブラウザを再読込すると、もう一度挑戦できます。');
 } else {
   let com = getComHand();
   alert(getResultMsg(com, hum));
   return getResult(com, hum);
 }
}
let win = 0;
let isLose = false;
while (!isLose) {
 let result = janken();
 if (result === '結果はあいこでした。') {
   continue;
 }
 if (result === '勝ちました。') {
   win++;
   alert('ただいま「' + win + '」勝です。');
   continue;
 }
 alert('連勝はストップです。記録は「' + win + '」勝でした。');
 isLose = true;
}
  • JavaScript

    37997 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1 質問文のコード部分をバッククォート3つで囲み、インデントしました。よろしくお願いいたします。

Mirage

Mirage score 4

2019/08/13 12:05  投稿

javascript ジャンケンゲームの質問です。
javascript初心者です。お世話になります。
初心者向けテキストで以下のようなジャンケンの繰り返しの例がありましたが、最後の段落のlet isLose = false;、 while (!isLose)、isLose = true のところがよくわかりません。まず isLose = true は、 return '負けました。' と同義でしょうか。またそれまでisLoseというのが出てきていないのに、なぜ isLose = true と return '負けました。'を関連付けて読み取ることができ、繰り返しをストップできるのかがよくわかりません。
初心者向けテキストで以下のようなジャンケンの繰り返しの例がありましたが、最後の段落のwhile文で
'''let isLose = false;'''
'''while (!isLose)'''
'''isLose = true'''
のところがよくわかりません。まず 
'''isLose = true''' 
は、
'''return '負けました。''''
 と同義でしょうか。またそれまで
'''isLose'''
というのが出てきていないのに、なぜ 
'''isLose = true'''
 と 
'''return '負けました。''''
を関連付けて読み取ることができ、繰り返しをストップできるのかがよくわかりません。
そのところをご解決いただければ幸甚でございます。何卒よろしくお願い申し上げます。
 
 
(以下テキスト文です)  
function janken () {
 /* 定数定義 ************************/
 // ジャンケンの手の番号を設定
 const GU   = 1;
 const CHOKI = 2;
 const PA   = 3;
 /* 関数定義 ************************/
 // 人間に手を入力してもらう機能
 function getHumHand() {
   let hum = prompt('半角数字で1~3の数字を入力してください。\n\n' + GU + ':グー\n' + CHOKI + ':チョキ\n' + PA + ':パー');
   hum = parseInt(hum, 10);
   if (hum !== GU && hum !== CHOKI && hum !== PA) {
     return undefined;
   } else {
     return hum;
   }
 }
 // コンピュータの手を決める
 function getComHand() {
   return Math.floor(Math.random() * 3) + 1;
 }
 // コンピュータの手の名前を取得
 function getHandName(num) {
   switch (num) {
     case GU:
     return 'グー';
     case CHOKI:
     return 'チョキ';
     case PA:
     return 'パー';
   }
 }
 // 結果の判定
 function getResult(com, hum) {
   if (hum === com) {
     return '結果はあいこでした。';
   } else if ((com === GU && hum === PA) || (com === CHOKI && hum === GU) || (com === PA && hum === CHOKI)) {
     return '勝ちました。';
   } else {
     return '負けました。';
   }
 }
 // 最終的な結果のメッセージ
 function getResultMsg(com, hum) {
   return getResult(com, hum) + 'コンピュータの出した手は「' + getHandName(com) + '」でした';
 }
 /* 実行する処理 ************************/
 let hum = getHumHand();
 if (!hum) {
   alert('入力値をうまく認識できませんでした。ブラウザを再読込すると、もう一度挑戦できます。');
 } else {
   let com = getComHand();
   alert(getResultMsg(com, hum));
   return getResult(com, hum);
 }
}
let win = 0;
let isLose = false;
while (!isLose) {
 let result = janken();
 if (result === '結果はあいこでした。') {
   continue;
 }
 if (result === '勝ちました。') {
   win++;
   alert('ただいま「' + win + '」勝です。');
   continue;
 }
 alert('連勝はストップです。記録は「' + win + '」勝でした。');
 isLose = true;
}
  • JavaScript

    37997 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る