Denisowator Ответов: 1

Отображать количество сообщений на основе входных данных?


Я работаю над оценкой колледжа, и мне нужно обновить свою программу. Мне нужно добавить код, который будет запрашивать количество баллов и отображать запрос для каждого балла, основываясь на том, что это было за число.

Так что-то вроде...
scoreAmount = prompt("How many scores did you get?");


Если пользователь вводит "3", то я хочу, чтобы у пользователя спросили 3 балла. Итак, "каков был ваш 1-й балл?", "каков был ваш 2-й балл?" и "каков был ваш 3-й балл?".

Я думал как-то использовать массив, но не знаю как.

Я попытался поискать похожий вопрос, который уже был задан, или использовать то, что я уже знаю о массивах, но я все еще ничего не знаю.

Если бы я использовал массивы, мне, вероятно, пришлось бы превратить входное число в пустой массив, поэтому, если пользователь введет "3", он создаст массив "[,,] " или "[0, 0, 0]". А затем вызывайте значения массива по одному для каждого запроса.

Поэтому, если массив называется "scoreArray", каждое приглашение будет вызывать значение этого массива слева направо, пока не будут вызваны все значения. Опять же, я огляделся вокруг, как это сделать, но до сих пор понятия не имею.

Что я уже пробовал:

Я еще ничего не пробовал.

1 Ответов

Рейтинг:
0

ZurdoDev

W3schools.com это отличный ресурс для изучения новых концепций. Я предлагаю посмотреть на их пример того, как использовать встроенную функцию JavaScript prompt(), Метод Window prompt() [^].

Получите входной номер, а затем выполните цикл.


Denisowator

Я уже знаю все о prompt (). И единственное, что я мог видеть на странице, которую вы связали (это сработало бы), была функция переключения. Но это в значительной степени сработало бы так же, если бы я просто использовал кучу операторов if и создал бы слишком много строк кода. Так как я должен был бы создать 1 приглашение, если вход был 1, то 2 приглашения, если вход был 2, и так далее.

Неужели нет более эффективного способа сделать это? (используя меньше строк кода)

ZurdoDev

Сделайте петлю. Наверное, я не совсем понимаю, где ты застрял.

Denisowator

Я не застрял, я просто не думаю, что это был бы эффективный способ сделать это, так как это привело бы к сотням и сотням строк кода.

Допустим, максимальное количество баллов, которое может ввести человек, равно 100, я должен был бы сделать функцию переключения и 100 операторов case, каждый из которых имеет на 1 запрос больше, чем предыдущий, так как программа должна запрашивать каждый балл отдельно.

Допустим, я ввел 50. Меня спрашивали о первом счете, потом о втором и так до самого 50-го. Чтобы сделать это, я должен был бы написать 50 различных подсказок для этого одного случая (если кто-то наберет 50). А затем в следующем случае, если кто-то набирает 51, я должен скопировать/вставить эти 50 подсказок и вставить новую, мгновенно удваивая строки кода.

И это было бы почти то же самое, если бы я сделал петлю.

ZurdoDev

Нет, петля очень проста.

for (var i = 0; i< numberFromPrompt; i++){
// хранить баллы в массиве.
}

3 строки кода.

Maniraj.M

Мое предложение такое же, как и у Ряндева для решения петли.Это более эффективный способ, чем переключатель