2017-06-05 5 views
0

この質問が重複していると申し訳ありませんが、私はt been able to find the answer with this method. It doesnのリンクに回答しています。 私は、ユーザーからの入力が週の日か週末かをチェックするJavascriptプログラムを作成しようとしています。これは、forループまたはdoループで行う必要があります。forループを使用して、ユーザが週または週末の日を入力するかどうか確認してください

ユーザー入力が配列に含まれているかどうかをプログラムで確認したい場合は、プログラムではそれが稼働日か週末かを判断できます。

私の問題:私は土曜日や日曜日を入れても、常に就業日を返します。

これはJavascriptとしてタグ付けされていますが、基本的なことからどの言語でも機能します。

Here`s私のコードは、これまで

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

可能な重複した[値の配列のインデックスを見つけるには?](https://stackoverflow.com/questions/7346827/how-to-find-the-array-index-with-a-値) –

+1

あなたの入力は?それは数字かフルテキストか(例えば月曜日) – codekaizer

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

完全に働いた、ありがとう –

1

あなたの入力が文字列であり、あなたがあなたのif文での大なり比較を行うことはできませんので、あなたの日が配列されている:forループを使用するには 。

代わりに、入力が一致する日をどのインデックス(番号)で見つける必要があります。 indexOf()という配列メソッドがすでにあり、配列内の項目のインデックスを検索しています。その日の数字が週末の日数以上かどうかを確認できます。あなたがforループを使用する必要がある場合

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

しかし、あなたは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 (input == days[dayNumber] && dayNumber >= 5) { 
    // it's the weekend 
} 
関連する問題