JavaScript语法错误或更多?

JavaScript语法错误或更多?,javascript,syntax-error,feedback,Javascript,Syntax Error,Feedback,我是一个三个小时的JavaScript业余爱好者,是一个非常新的读者,所以我有一个非常低级的问题。然而,我认为这将提供一个很好的机会来探索这个社区。我已经浏览了大约50%的CodeAcademy JavaScript简介,刚刚完成了while和for循环部分。在自由练习部分,我决定尝试编写一个程序,模拟投币1000次,并将结果报告给用户。程序似乎运行正常,但在第9行,当我引入if/else语句时,我看到了语法错误的提示。我现在也看到,如果你回答“不”,它无论如何都会运行。语法有什么问题?对于我的

我是一个三个小时的JavaScript业余爱好者,是一个非常新的读者,所以我有一个非常低级的问题。然而,我认为这将提供一个很好的机会来探索这个社区。我已经浏览了大约50%的CodeAcademy JavaScript简介,刚刚完成了while和for循环部分。在自由练习部分,我决定尝试编写一个程序,模拟投币1000次,并将结果报告给用户。程序似乎运行正常,但在第9行,当我引入if/else语句时,我看到了语法错误的提示。我现在也看到,如果你回答“不”,它无论如何都会运行。语法有什么问题?对于我的第一个独立程序,您还有什么其他一般性反馈?谢谢

var userReady = prompt("Are you ready for me to flip a coin one thousand times?");

var flipCount = 0;

var heads = 0;

var tails = 0;

if (userReady = "yes" || "Yes") {
    flipCount++;
    while (flipCount <= 1000) {
        var coinFace = Math.floor(Math.random() * 2);
        if (coinFace === 0) {
            heads++;
            flipCount++;
        } else {
            tails++;
            flipCount++;
        }

    }

} else {
    confirm("Ok we'll try again in a second.");
    var userReady = prompt("Are you ready now?");
}


confirm("num of heads" + " " + heads);
confirm("num of tails" + " " + tails);
var userReady=prompt你准备好让我掷硬币一千次了吗?; var-flipCount=0; var头=0; var-tails=0; 如果userReady=yes | | yes{ flipCount++; 当flipCount此行时:

if (userReady = "yes" || "Yes") {
不符合您的期望。首先,您不能使用=来比较Javascript中的赋值。因此您可以使用==。其次,| |连接两个独立的条件,而不是值。因此您可以编写:

if (userReady === "yes" || userReady === "Yes") {
此外,通过在比较之前对用户输入的大小写进行归一化处理,可以涵盖用户键入YES或YES之类的内容的情况:

if (userReady.toLowerCase() === "yes") {
这一行:

if (userReady = "yes" || "Yes") {
不符合您的期望。首先,您不能使用=来比较Javascript中的赋值。因此您可以使用==。其次,| |连接两个独立的条件,而不是值。因此您可以编写:

if (userReady === "yes" || userReady === "Yes") {
此外,通过在比较之前对用户输入的大小写进行归一化处理,可以涵盖用户键入YES或YES之类的内容的情况:

if (userReady.toLowerCase() === "yes") {

当您比较应该使用==而不是==的值时,对于或其操作不正确,您需要执行以下操作:
如果userReady==yes | | userReady==yes

在比较应使用==而不是==的值时,对于或其操作不正确,您需要执行以下操作:
如果userReady==yes | | userReady==yes

您的if语句只查找yes不是一个的布尔语句。另外,=是赋值运算符,而==是比较运算符。将if语句行更改为以下将解决此问题


如果userReady==yes | | userReady==yes{

您的if语句只查找yes不是一个的布尔语句。另外,=是赋值运算符,而==是比较运算符。将if语句行更改为以下将解决此问题


如果userReady==yes | | userReady==yes{

我对代码做了一些更改: 1.添加了默认答案“是” 2.将代码中的while循环更改为for循环。您可以将flipCount直接放在else语句之后 3.将确认更改为警报 4.在一次警报中记录正面和反面的数量

var userReady = prompt("Would you like to run a coin simulator?" + "\n"
    + "Answer yes or no:","Yes");

if(userReady.toLowerCase() === "yes")
{
    var heads = 0, tails = 0;

    for (var flipCount = 0; flipCount < 1000; flipCount++)
    {
        var coinFace = Math.floor(Math.random() * 2);
        if (coinFace === 0)
        {
                heads++;
        }
        else
        {
            tails++;
        }
    }

    alert("Number of heads: " + heads + "\n"
    + "Number of tails: " + tails);
}
else
{
    // statement goes here if the user doesn't want to play
    //alert("You're no fun!");
}

我对代码做了一些更改: 1.添加了默认答案“是” 2.将代码中的while循环更改为for循环。您可以将flipCount直接放在else语句之后 3.将确认更改为警报 4.在一次警报中记录正面和反面的数量

var userReady = prompt("Would you like to run a coin simulator?" + "\n"
    + "Answer yes or no:","Yes");

if(userReady.toLowerCase() === "yes")
{
    var heads = 0, tails = 0;

    for (var flipCount = 0; flipCount < 1000; flipCount++)
    {
        var coinFace = Math.floor(Math.random() * 2);
        if (coinFace === 0)
        {
                heads++;
        }
        else
        {
            tails++;
        }
    }

    alert("Number of heads: " + heads + "\n"
    + "Number of tails: " + tails);
}
else
{
    // statement goes here if the user doesn't want to play
    //alert("You're no fun!");
}

哇!谢谢你的即时和超级有用的回复。我知道的少数几件事之一是多么愚蠢===我仍然搞砸了,无法识别。谢谢你关于如何处理大小写的有用提示issue@AustinHansen:欢迎使用堆栈溢出。如果此答案有帮助,请单击左侧的复选标记。查看更多信息。实际上,在遵循此建议后,我发现不再存在语法错误,现在程序将根本无法运行。没有翻转,也没有结果。我一定有更大的问题?如果使用“是”,则上面的代码可以工作。单击“运行代码段”按钮查看。如果它在您的开发系统上不工作,则是,您可能会有更大的问题e、 哇!谢谢你的即时和超级有用的回复。我知道的少数几件事之一是多么愚蠢===我仍然搞砸了,无法识别。谢谢你关于如何处理大小写的有用提示issue@AustinHansen:欢迎使用堆栈溢出。如果此答案有帮助,请单击左侧的复选标记。查看t获取更多信息。实际上,在遵循此建议后,我发现不再存在语法错误,现在程序将根本无法运行。没有翻转,也没有结果。我一定有更大的问题?如果使用“是”,则上面的代码可以工作。单击“运行代码段”按钮查看。如果它在您的开发系统上不工作,则是,您可能有更大的issue。既然你在if语句的两个分支中都增加了flipCount,你就应该将它移到if语句之后,让它无条件地执行。实际上,它应该只是一个“for”循环。我重写了它,因为你在if语句的两个分支中都增加了flipCount,你就应该将它移到if语句之后,让它不执行有条件的。真的应该是b e是一个“for”循环。我重写了它