7.4 KiB
title, localeTitle
title | localeTitle |
---|---|
Golf Code | Гольф-код |
Не забудьте использовать
Read-Search-Ask
если вы застряли. Попробуйте подключить программу и напишите свой собственный код
Проблема Объяснение:
В игре в гольф каждое отверстие имеет номинальной означая среднее число ударов игрок в гольф , как ожидается , чтобы сделать для того , чтобы утопить мяч в отверстие , чтобы закончить игру. В зависимости от того , насколько выше или ниже номинальной ваши ходы, есть другой ник.
Ваша функция будет передана параметрам par и strokes . Вы должны вернуть правильную строку в соответствии с этой таблицей, которая отображает штрихи в порядке приоритета; верхняя (самая высокая) до нижней (самая низкая):
- Штрихи | Вернуть
- --------- | : -------------
1 | "Отверстие в одном!"
<= par - 2 | «Орел»
par - 1 | "Птичка"
par | «Пар»
par + 1 | «Пугало»
par + 2 | "Двойной Богей" > = par + 3 | "Иди домой!"
par и штрихи всегда будут числовыми и положительными.
- Измените код ниже
// Only change code below this line
и выше// Only change code above this line
. - Убедитесь, что вы редактируете внутреннюю часть функции
golfScore
. - Вам нужно будет заставить функцию возвращать точно такую же строку, как показано в таблице, в зависимости от значения параметров par и штрихов , передаваемых вашей функции.
Подсказка: 1
+number -number
можно использовать для увеличения или уменьшения параметра в вашем состоянии.
попытаться решить проблему сейчас
Подсказка: 2
Вы используете if / else if
цепочки возвращают разные значения в разных сценариях.
попытаться решить проблему сейчас
Подсказка: 3
Управляйте потоком вашей функции на основе таблиц порядка приоритета - верхний (самый высокий) до нижнего (самый низкий), чтобы возвращать соответствующие строковые значения.
попытаться решить проблему сейчас
Осторожно, спойлеры!
Решение впереди!
Решение базового кода:
function golfScore(par, strokes) {
// Only change code below this line
if (strokes == 1){
return "Hole-in-one!";
} else if (strokes <= par -2){
return "Eagle";
} else if (strokes == par -1) {
return "Birdie";
} else if (strokes == par) {
return "Par";
} else if (strokes == par +1) {
return "Bogey";
} else if (strokes == par +2) {
return "Double Bogey";
} else {
return "Go Home!";
}
// Only change code above this line
}
// Change these values to test
golfScore(5, 4);
Код Объяснение:
- Сравните параметры par и stroke, чтобы вернуть соответствующие строковые значения.
if / else if
цепочка используется для управления потоком.- Строка «Иди домой!» возвращается для каждого условия, когда штрихи больше или равны par + 3 .
Альтернативное решение для кода:
var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
function golfScore(par, strokes) {
// Only change code below this line
if (strokes == 1){
return names[0];
}
else if (strokes <= par-2){
return names[1];
}
else if (strokes == par -1){
return names[2];
}
else if (strokes == par){
return names[3];
}
else if (strokes == par +1){
return names[4];
}
else if (strokes == par +2){
return names[5];
}
else {return names[6];}
// Only change code above this line
}
// Change these values to test
golfScore(5, 4);
· Запустить на repl.it
## Обозначение кода Поскольку у нас уже есть массив, определенный в names
переменных, мы можем воспользоваться им и использовать его для наших операторов return, используя индексы (например: names[0] is the first one
). Таким образом, если вам когда-либо понадобится изменить определенный результат, вам не нужно будет искать его внутри функции, это будет в начале в вашем массиве.