使用for循环检查用户是否输入了一周或周末

时间:2017-06-05 23:45:24

标签: javascript for-loop while-loop

抱歉,如果这个问题多余,但我没有t been able to find the answer with this method. It doesn在所提供的链接上得到解答。  我一直在尝试制作一个Javascript程序,检查用户的输入是周日还是周末。它必须用for或do while循环来完成。

我希望我的程序检查用户输入是否在数组中,如果是,程序应该能够判断它是工作日还是周末。

我的问题:即使我把星期六或星期天放在工作日,它总是会返回工作日。

这被标记为Javascript,但适用于任何语言,因为它是基本的东西。

到目前为止,这是我的代码

var input = prompt("Enter a day of the week");
var day = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"];

for (var i = 0; i <= day.length; i++)
{
    if(input >= day[5]){
        console.log("It´s weekend!"); {break;}
    }else
    {
        console.log("It´s a working day");

    }
}

2 个答案:

答案 0 :(得分:1)

我认为你不必使用for循环。以下代码应该有效:

var input = prompt("Enter a day of the week");
var workingday = ["monday", "tuesday", "Wensday", "thursday", "friday"];
var weekend = ["saturday", "sunday"]

if (workingday.indexOf(input) != -1) {
     console.log("It´s a working day!");
} else if (weekend.indexOf(input) != -1) {
     console.log("It´s weekend!");
} else {
     console.log("Invalid input!");
}

顺便说一下,你拼错了“Wensday”。 要使用for循环:

for (var i = 0; i < day.length; i++)  {
    if (day[i] == input)  {
        console.log((i >= 5) ? "It's weekend!" : "It's a working day");
    }
}

答案 1 :(得分:1)

您的输入是一个字符串,您的日期是一个数组,因此您不能在if语句中进行大于比较。

相反,您需要找到输入匹配日期的索引(数字)。已经有一个名为indexOf()的数组方法,用于查找数组中项的索引。然后,您可以查看该天数是否大于或等于周末的天数。

var dayNumber = days.indexOf(input);
if (dayNumber >= 5) {
  // it's the weekend
}

但是,如果必须使用for循环,则可以模拟indexOf()的作用。它的工作原理是增加每个循环的dayNumber个数,然后使用该数字索引到days数组。然后,您可以将该索引处的值与input进行比较。如果它匹配,你知道它的天数是多少,并且可以看出它是否大于或等于周末的天数。

for (var dayNumber = 0; dayNumber < days.length; dayNumber++) {
  // check if the input matches the current index of the array
  if (input == days[dayNumber]) {
    // if it does, check if the day number is on the weekend
    if (dayNumber >= 5) {
      // it's the weekend
    }
  }
}

使用“和运算符”&&组合两个嵌套的if语句可以使这更紧凑。

if (input == days[dayNumber] && dayNumber >= 5) {
  // it's the weekend
}