我在Javascript中非常环保,但我想学习它以便成为我公司的更好资产。我一直在代码学院做他们的教程,而且我找到了一个墙,我找不到他们的Q&答案。一页,我也没在这里找到一个。
我要做的是建立1-10的评分等级,其中任何8或以下的评分都会给出一个评论。任何9或10的东西都会给出不同的东西。在堆栈上四处看看我看到很多人发布了关于星级的评论,以及如何利用它,但我无法真正将其用于我的目的。我确实找到了一张海报曾像我一样提出类似问题的问题,但问题已经结束而没有回复(JS if . . . else if statements rating from 1 - 10)。
手头的问题是,无论我如何定义陈述,我都会看到'if'和'else'的回复。在我对Javascript的有限知识中,我应该只看到一个或另一个,而不是两者,无论数字等级如何。当然,我可以让代码打印出'if'语句,如果我告诉它超过9个计数,但我需要代码只接受1-10个参数;而这反过来允许我制作我的'else'语句以正确地打印8或更低的任何东西(但是,再次,我需要从1-10开始,仅限于此。)
对于文本墙感到抱歉,但基本上,我需要知道如何制作1-10的评级系统,在1或10时难以停止,并根据任一结果打印出正确的响应9,10;或8岁及以下。
到目前为止,这是代码:
{
var feedback = Number( prompt("Please rate this game from 1 - 10."));
if (feedback = 10)
{
console.log("Thank you! We should race at the next concert!");
}
else (feedback <=8)
{
console.log("I'll keep practicing coding and racing.");
}
}
答案 0 :(得分:2)
您的代码有些问题:
if (feedback == 10)
{
console.log("Thank you! We should race at the next concert!");
}
else if (feedback <=8)
{
console.log("I'll keep practicing coding and racing.");
}
当您使用单个=
时,它将值10分配给变量feedback
,而不是检查是否相等。然后,您分配给feedback
的值将通过并在if
语句(本例中为数字10)中进行评估。由于10是truthy
值(请参阅http://www.sitepoint.com/javascript-truthy-falsy/),因此if
语句始终为true。就像你说if(10) { ...
一样。
此外,您需要在if
之后else
。第二个代码块运行的原因是因为在if
之后没有else
,条件(feedback <= 8
)只是一个布尔语句,然后括号{ }
中的以下代码块因为else
已完成而运行。
以下是我认为可能为您提供更好服务的更新版本:
var feedback = Number( prompt("Please rate this game from 1 - 10."));
while(feedback < 1 || feedback > 10) {
feedback = Number( prompt("Please enter a number from 1 - 10."));
}
if (feedback >= 9)
{
console.log("Thank you! We should race at the next concert!");
}
else
{
console.log("I'll keep practicing coding and racing.");
}
答案 1 :(得分:0)
如果我理解正确,你需要一个控制台日志,如果响应是9 - 10而另一个,如果它是0 - 8.在这种情况下你可以使用它:
{
var feedback = Number( prompt("Please rate this game from 1 - 10."));
if (feedback >= 9 && feedback <= 10)
{
console.log("Thank you! We should race at the next concert!");
}
else if (feedback <=8)
{
console.log("I'll keep practicing coding and racing.");
}
}
答案 2 :(得分:0)
该代码存在一些问题。
首先,你不需要在其他之后使用表达式。 &#39;否则&#39;只是执行或不基于初始if语句。因为你有&#34;(反馈&lt; = 8)&#34;在其他情况下,JS解释器认为如果初始if语句为false,表达式就是所有需要完成的。然后它执行以下控制台日志,因为它认为它在if / else块之外。
另外,您需要使用&#39; ==&#39;或者&#39; ===&#39;而不是&#39; =&#39;在if语句中。一个&#39; =&#39;用于设置值,而不是用于检查值。因为你放了一个&#39; =&#39;在if语句中,您将反馈设置为10,这不是您想要的。这对新程序员来说是一个常见的错误。
最后,目前还不清楚当反馈为9时应该会发生什么。我们会从你的文本中假设你想要将其视为10,所以你可能需要检查&#39 ;&GT; = 9&#39;而不是&#39; == 10&#39;。
代码应如下所示:
if(Feedback >= 9)
{
console.log("Thank you! We should race at the next concert!");
}
else
{
console.log("I'll keep practicing coding and racing.");
}