JavaScript 语法错误还是更多?
JavaScript Syntax Error or More?
我是 JavaScript 一个非常新的(阅读三小时前)业余爱好者,所以我有一个非常低级的问题。但是我认为这将提供一个很好的机会来探索这个 Whosebug 社区。我已经 运行 学习了大约 50% 的 CodeAcademy JavaScript 介绍,并且刚刚完成了关于 while 和 for 循环的部分。在自由练习部分,我决定尝试编写一个程序来模拟抛硬币 1,000 次并将结果报告给用户。该程序似乎 运行 正常,但在第 9 行我看到提示语法错误,因为我引入了 if/else 语句。我现在还看到,如果您回答 "no",它仍然 运行s。语法有什么问题,您对我的第一个独立程序有什么其他一般反馈?谢谢!
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("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);
这一行:
if (userReady = "yes" || "Yes") {
没有达到您的预期。首先,您不能使用 =
来比较值(这意味着在 Javascript 中赋值)。所以你可以使用===
。其次,||
加入了两个独立的条件,而不是值。所以你可以这样写:
if (userReady === "yes" || userReady === "Yes") {
此外,您可以通过在比较之前规范化用户输入的大小写来涵盖用户键入类似 YES
或 yEs
的情况:
if (userReady.toLowerCase() === "yes") {
当您比较值时,您应该使用 == 而不是 =,对于 或 操作也是不正确的,您需要执行以下操作:
如果(用户就绪 == "yes" || 用户就绪 == "Yes")
您的 if 语句仅查找布尔语句(其中 "Yes" 不是一个)。此外,=
是赋值运算符,而 ==
是比较运算符。将您的 if 语句行更改为以下内容即可解决问题。
if (userReady == "yes" || userReady == "Yes") {
我对代码做了一些修改:
1. 增加默认回答是
2. 将 while 循环更改为 for 循环(在您的代码中,您可以将 flipCount 直接放在 else 语句之后)
3.将确认更改为提醒
4. 制作了一次alert中正面和反面的数量
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!");
}
我是 JavaScript 一个非常新的(阅读三小时前)业余爱好者,所以我有一个非常低级的问题。但是我认为这将提供一个很好的机会来探索这个 Whosebug 社区。我已经 运行 学习了大约 50% 的 CodeAcademy JavaScript 介绍,并且刚刚完成了关于 while 和 for 循环的部分。在自由练习部分,我决定尝试编写一个程序来模拟抛硬币 1,000 次并将结果报告给用户。该程序似乎 运行 正常,但在第 9 行我看到提示语法错误,因为我引入了 if/else 语句。我现在还看到,如果您回答 "no",它仍然 运行s。语法有什么问题,您对我的第一个独立程序有什么其他一般反馈?谢谢!
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("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);
这一行:
if (userReady = "yes" || "Yes") {
没有达到您的预期。首先,您不能使用 =
来比较值(这意味着在 Javascript 中赋值)。所以你可以使用===
。其次,||
加入了两个独立的条件,而不是值。所以你可以这样写:
if (userReady === "yes" || userReady === "Yes") {
此外,您可以通过在比较之前规范化用户输入的大小写来涵盖用户键入类似 YES
或 yEs
的情况:
if (userReady.toLowerCase() === "yes") {
当您比较值时,您应该使用 == 而不是 =,对于 或 操作也是不正确的,您需要执行以下操作: 如果(用户就绪 == "yes" || 用户就绪 == "Yes")
您的 if 语句仅查找布尔语句(其中 "Yes" 不是一个)。此外,=
是赋值运算符,而 ==
是比较运算符。将您的 if 语句行更改为以下内容即可解决问题。
if (userReady == "yes" || userReady == "Yes") {
我对代码做了一些修改: 1. 增加默认回答是 2. 将 while 循环更改为 for 循环(在您的代码中,您可以将 flipCount 直接放在 else 语句之后) 3.将确认更改为提醒 4. 制作了一次alert中正面和反面的数量
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!");
}