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

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

0 голосов
/ 11 сентября 2018

Итак, вот общее из того, что мне нужно сделать

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

  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 без HTML.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

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

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

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

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 голосов
/ 11 сентября 2018

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

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

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

if (codeInput == null) break
...