Как правильно зациклить

1

Итак, вот, что мне нужно сделать

  1. Начните с подтверждения того, хочет ли пользователь добавить курс, если они нажмут ok, он дает им приглашение ввести курс, если они нажмут отменить, он заканчивает программу.

  2. Когда пользователь дает ответ на курс, им необходимо дать оценку для этого конкретного курса.

  3. После того, как эти два вопроса будут выполнены, ему нужно вернуться, чтобы спросить их, хотят ли они снова добавить курс

это то, что я до сих пор

while (true) {
  var entering = confirm('Do you want to enter a Course?');
  if (entering = true) {
    break;
  }

}
var codeInput = '';
var gradeInput = '';
while (true) {
  codeInput = prompt('Enter Course Code');
  if (codeInput.length === 7) {
    break;
  }
  alert('invalid code');
}

gradeInput = prompt('Enter Grade for ' + codeInput + '');


document.writeln('<table border="1">');
document.writeln('<tr>');
document.writeln('<th>Course Code</th>');
document.writeln('<th>Grade</th>');
document.writeln('<tr>');
document.writeln('<th>' +
  codeInput +
  '</th>');
document.writeln('<th>' +
  gradeInput +
  '</th>');
document.writeln('</tr>');

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

Я надеюсь, что это имеет смысл, и если кто-то может помочь, это будет милое спасибо!

пс. Это нужно сделать, используя javascript no HTML.

  • 0
    Вы можете использовать рекурсию здесь, а не помещать их в цикл while
  • 0
    Я еще не изучил рекурсии, поэтому мне нужно использовать циклы while или любой другой цикл, который будет работать
Теги:
loops
input
output

2 ответа

1
Лучший ответ

Рабочая скрипка.

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

Я предлагаю создать таблицу и заголовок, а затем добавить строки, когда пользователь отвечает на подсказки:

var number_of_rows = 0;
var table = document.createElement('table');
table.border = '1';

ask();

function ask() {
  var codeInput = '';
  var gradeInput = '';

  var entering = confirm('Do you want to enter a Course?');

  if (!entering) {
    return;
  } else {
    while (true) {
      codeInput = prompt('Enter Course Code');

      if (codeInput.length === 7) {
        break;
      }

      alert('invalid code');
    }
  }

  gradeInput = prompt('Enter Grade for ' + codeInput + '');

  if (number_of_rows === 0) {
    var row = document.createElement('tr');
    var th_1 = document.createElement('th');
    var th_2 = document.createElement('th');
    var txt_1 = document.createTextNode("Course Code");
    var txt_2 = document.createTextNode("Grade");
    th_1.appendChild(txt_1);
    th_2.appendChild(txt_2);
    row.appendChild(th_1);
    row.appendChild(th_2);
    table.appendChild(row);

    number_of_rows++;
  }


  console.log(number_of_rows);

  table = insertRow(codeInput, gradeInput);

  document.body.appendChild(table);
  number_of_rows++;

  ask();
}

function insertRow(codeInput, gradeInput) {
  var row = document.createElement('tr');
  var td_1 = document.createElement('td');
  var td_2 = document.createElement('td');
  var txt_1 = document.createTextNode(codeInput);
  var txt_2 = document.createTextNode(gradeInput);

  td_1.appendChild(txt_1);
  td_2.appendChild(txt_2);
  row.appendChild(td_1);
  row.appendChild(td_2);

  table.appendChild(row);

  return table;
}
  • 0
    Большое спасибо за вашу помощь, я ценю это, но одну вещь, которую я забыл упомянуть в своем вопросе, это то, что это должно быть сделано во всех javascript, не html.
  • 0
    Пожалуйста, проверьте мое обновление.
Показать ещё 3 комментария
0

Согласно https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt

Если пользователь нажимает кнопку "Отмена", эта функция возвращает значение null

Так что все, что вам нужно, это проверить, является ли значение нулевым, чтобы узнать, нажал ли пользователь отменить

if (codeInput == null) break

Ещё вопросы

Сообщество Overcoder
Наверх
Меню