Мое первое предложение - использовать true
/ false
логический вместо проверки строк "yes"
и "no"
, чтобы упростить ваш код.Я сделал функцию, которая поможет преобразовать это для вас.Он также обрабатывает то, что происходит, если кто-то, например, наберет "NO"
или "yEs"
.
Кроме того, простое использование согласованного форматирования облегчает чтение кода.
function promptToBoolean(txt) {
return /yes/i.test(prompt(txt));
}
var javascript = promptToBoolean("Want to learn javascript? (Type yes or no)");
var docker = promptToBoolean("Want to learn docker? (Type yes or no)");
var time = promptToBoolean("do you have time ? (type yes or no)");
if (!time) {
alert("Nobody is busy its just a matter of PRIORITIES");
}
if (javascript && time && docker) {
alert("keep patience first learn docker and then learn javascript");
} else if (javascript && docker && !time) {
alert("so what should I do if u don't have time ?");
} else if (javascript && time) {
alert("go and learn javascript");
} else if (!time && javascript) {
alert("\"A smarter way to learn javascript\" will solve your problem in less time ");
} else if (docker && time) {
alert('go n learn docker');
} else if (!time && docker) {
alert("\"Docker Deep Dive\" will solve your problem in less time ");
} else {
alert('You are not from us');
}
Еще один способ помочь им управлять - лучше следовать логике, не повторяться и не использовать ненужные скобки или вложенные операторы.
Например, этот
if ((javascript ==="yes" && time === "yes") && (docker === 'yes' && time ==='yes') ) {
может быть переписан как просто
if (javascript && time && docker) {
И тогда это:
} else if (javascript === "yes" && docker === "yes") {
if (time === "no") {
alert("so what should I do if u don't have time ?");
}
}
может быть повторнозаписывается как:
} else if (javascript && docker && !time) {
alert("so what should I do if u don't have time ?");
}
Я также рекомендую разбивать вещи на большие куски для управления логикой, например с time
, который, казалось, проверялся довольно часто, так что вы можете просто сделать этопроверьте один раз, а затем управляйте своей другой логикой внутри этих блоков кода
if (time) {
//Put everything in here where time is true
} else {
//Put everything in here where time is false
}
Примерно так:
function promptToBoolean(txt) {
return /yes/i.test(prompt(txt));
}
var javascript = promptToBoolean("Want to learn javascript? (Type yes or no)");
var docker = promptToBoolean("Want to learn docker? (Type yes or no)");
var time = promptToBoolean("do you have time ? (type yes or no)");
if (time) {
if (javascript && docker) {
alert("keep patience first learn docker and then learn javascript");
} else if (javascript) {
alert("go and learn javascript");
} else if (docker) {
alert('go n learn docker');
}
} else {
alert("Nobody is busy its just a matter of PRIORITIES");
if (javascript && docker) {
alert("so what should I do if u don't have time ?");
} else if (javascript) {
alert("\"A smarter way to learn javascript\" will solve your problem in less time ");
} else if (docker) {
alert("\"Docker Deep Dive\" will solve your problem in less time ");
} else {
alert('You are not from us');
}
}