2016-05-09 7 views
0

私はvar computerChoice = Math.random();でそれを行うことができました...そしてその変数を岩、紙またははさみに変えることができました...しかし、変数 'winner'を変更して結果を出力することはできません。それは単に未定義のまま印刷を続けます。助けて?Javascript変数を関数で変更しますか?

var choice1 = userChoice; 
var choice2 = computerChoice; 


var winner = "undefined"; 


var compare = function (choice1, choice2) {//start function 

    if (choice1 === choice2) { 
     winner = "Tie game!"; 


    } else if (choice1 === "rock") { 
     if (choice2 === "scissors") { 
      winner = "rock wins"; 
     } else { 
      winner = "paper wins"; 
     } 
    } else if (choice1 === "paper") { 
     if (choice2 === "rock") { 
      winner = "paper wins"; 
     } else { 
      winner = "scissors wins"; 
     } 
    } else { 
     if (choice2 === "paper") { 
      winner = "scissors wins"; 
     } else { 
      winner = "rock wins"; 
     } 
    } 

}//end function 


confirm("You chose: " + userChoice + "\nSystem: " + computerChoice + "\nOutcome: " + winner); 


compare(userChoice,computerChoice); 

</script> 
+1

よりも良い範囲にあなたの変数の地元の人々を保つことを覚えておいてください。 –

+0

ifsの代わりにスイッチを使用してください。これにより、コードの読みやすさが向上します。 – Dalorzo

答えて

2

これは、表示する前に変更していないためです。 compareの前にと電話すると、は、winnerの機能であるため、confirmと呼ぶことができます。

compare(userChoice, computerChoice); 
confirm("You chose: " + userChoice + "\nSystem: " + computerChoice + "\nOutcome: " + winner); 
0

関数呼び出しの順序を変更する必要があります。

compare(userChoice,computerChoice); 
confirm("You chose: " + userChoice + "\nSystem: " + computerChoice + "\nOutcome: " + winner); 
0
あなたが「比較」関数ブロック内に「確認」を入れて、これらのグローバル変数

choice1、userChoiceのすべてを削除することができます

。 choice2、computerChoice;

 var compare = function (choice1, choice2) {//start function 

     var winner; //you don't need to specify 'undefined' 

     if (choice1 === choice2) { 
      winner = "Tie game!"; 


     } else if (choice1 === "rock") { 
      if (choice2 === "scissors") { 
       winner = "rock wins"; 
      } else { 
       winner = "paper wins"; 
      } 
     } else if (choice1 === "paper") { 
      if (choice2 === "rock") { 
       winner = "paper wins"; 
      } else { 
       winner = "scissors wins"; 
      } 
     } else { 
      if (choice2 === "paper") { 
       winner = "scissors wins"; 
      } else { 
       winner = "rock wins"; 
      } 
     } 

confirm("You chose: " + choice1+ "\nSystem: " + choice2+ "\nOutcome: " + winner); 

    }//end function 

あなたは `confirm`呼び出す前に` compare`を呼び出す必要がグローバル

関連する問題