В настоящее время я изучаю Javascript и работаю через скалу, ножницы, бумажный учебник. На этом сайте уже есть несколько запросов, основанных на том же учебнике в Codeacademy. Однако мой запрос основан на моей перспективе, и поэтому я был бы признателен за некоторые отзывы сообщества SO.Javascript - Лучшая практика использования If Else в этом примере
Мой код выглядит следующим образом: -
var userChoice = prompt("Are you picking rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
computerChoice = "rock";
} else if(computerChoice <= 0.67) {
computerChoice = "paper";
} else {
computerChoice = "scissors";
}
console.log ("Computer picks" + " " +computerChoice);
var compare = function (choice1, choice2) {
if (choice1 === choice2) {
console.log ("You're both psychic. It's a tie!");
}
if (choice1=="rock") {
if (choice2 =="scissors") {
console.log ("Rock wins. You bad boy, you.");
}
if (choice2=="paper") {
console.log ("Paper wins. You noob") ;
}
}
if (choice1=="paper") {
if (choice2=="rock") {
console.log ("Paper wins. You bad boy, you.");
}
if (choice2=="scissors") {
console.log ("Scissors wins. You noob.") ;
}
}
if (choice1=="scissors") {
if (choice2=="rock") {
console.log ("Rock wins, you noob");
}
if (choice2=="paper") {
console.log ("Scissors wins. You bad boy, you.");
}
}
};
compare (userChoice,computerChoice);
Я всегда думал, что при использовании условных, это должно быть только одно из перечисленных ниже случаев:
- одно условия, то просто
if
все в порядке. - больше, чем одно условие, то оно должно быть
if
, а в концеelse
ИЛИif
,else if
и т.д., и заканчиватьсяelse
.
В результате, я сначала использовал else
во втором вложенном, условный оператор здесь if (choice2=="paper")
. Затем понял, что логика была неправильной, потому что она также напечатала эту строку, если это была связь.
Итак, я подумал об этом и понял, что это сработает, если я использую if
вместо другого. И это действительно работает. Тем не менее, я просто не уверен, что мой код просто ошибается ... или не идеален. Это?
Кроме того, чтобы сделать его лучше (и не только полный if
iS) Я думал об обмене вне if
в if (choice1=="paper")
с else if
. Однако я не знаю, как закончить следующее условие - if (choice1=="scissors") {
. Как бы вы это сделали?
Прощение длинных запросов - я просто стараюсь, чтобы я хорошо это понял.
Благодаря
Вам не нужно заканчивать 'e lse'. 'if' и' else if', и ничего больше не замечательно. – basilikum
Я вижу. И это довольно часто, если ситуация этого заслуживает? – kravoon
Да, это нормально. – basilikum