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