JavaScript评级等级为1-10并未显示正确的“if / else”响应

时间:2014-11-18 16:41:17

标签: javascript

我在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.");
    }
}

3 个答案:

答案 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.");
}