在我的“if / else”语句中,我的“else”语句不起作用

时间:2013-06-08 18:41:59

标签: javascript if-statement

我对编码非常陌生(使用codeacademy学习Javascript),我需要帮助我正在开发的这个迷你项目。我试图让计算机随机选择两个不同阵列中的男孩名字或女孩名字。我使用if / else语句让计算机在boynames数组或girlnames数组之间进行选择。出于某种原因,当我运行代码时,它只执行girlname循环(“if”部分),但不运行boyname循环(“else”部分。)任何关于如何让它执行if / else的建议功能正常?代码在下面,提前谢谢!

<script>

var lastname = prompt("What is your last name?");
var useranswer = prompt("Are you having a baby girl or boy");

var girlnames = ["Lana", "Michelle", "Rebecca", "Angelina", "Carrie", "Natalia",
    "Rosie", "Heather", "Monica", "Lindsay"]

var random = girlnames[Math.floor(Math.random() * girlnames.length)];

var boynames = ["Justin", "Ryan", "Adler", "Darren", "Michael", "Kyle", "Taylor",
    "Winston", "Jacob", "Samuel", "Oliver"]

var rand = boynames[Math.floor(Math.random() * boynames.length)];


if (useranswer = "girl") {
    for (var i = 0; i <= girlnames.length; i++) {
        confirm("Your future daughter's name is" + " " + random + " " + lastname);
    }
} else {
    for (var j = 0; j <= boynames.length; j++) {
        confirm("Your future son's name is" + " " + rand + " " + lastname);
    }
}      

</script>

3 个答案:

答案 0 :(得分:4)

这是因为您使用了=而不是==

单个等号用于赋值,两个等号用于比较

答案 1 :(得分:3)

您需要==才能返回布尔语句:

if (useranswer = "girl") {

要:

if (useranswer == "girl") {

答案 2 :(得分:3)

if (useranswer = "girl") {

  • 您需要使用两个等号(==
  • 原因是单个=是一项分配,表示您将值girl分配给变量useranswer。赋值将无错误地发生,从而导致条件表达式的true值(if(true){);所以块内的所有内容都将被运行/执行