ошибка в моем скрипте Java, когда я хочу распечатать оценку

1

я не столкнулся с какой-либо проблемой, когда я печатаю только имя студента и его метку, но когда я пишу код для вычисления или возврата своего класса, он не показывает оценку, которую я хочу. И когда я хочу ввести имя студента и отметки для ученика 1, он просто пропустил ученика 2 и попросил имя и класс ученика 3... кто-нибудь знает, как это исправить? ниже мой код:

function Average() {
  var text = "";
  var person = new Array();
  var marks = new Array();
  var grade = new Array();
  for (var i = 0; i < 3; i++) {
    person[i] = window.prompt("enter student name " + (i + 1) + "of 3", "");
    marks[i] = window.prompt("enter student marks " + (i + 1) + "of 3", "");

    for (var i = 0; i < marks.length; i++) {
      if (marks[i] >= 85 && marks[i] < 100) {
        grade[i] = "HD";
      } else if (marks[i] >= 75 && marks[i] < 85) {
        grade[i] = "D";
      } else if (marks[i] >= 65 && marks[i] < 75) {
        grade[i] = "C";
      } else if (marks[i] >= 50 && marks[i] < 35) {
        grade[i] = "P";
      } else if (marks[i] >= 00 && marks[i] < 50) {
        grade[i] = "F";
      }

      text += "the student name  is : " + person[i] + "&nbsp" + "&nbsp" + "theirs marks are : " + marks[i] + grade[i] + "<br>";
    }
    // text += "the student name  is : " + person[i] +"&nbsp"  +"&nbsp" + "theirs marks are : "  + marks[i] +  grade[i] +"<br>";
  }
  document.getElementById("id").innerHTML = text;
}
<p> click this to active the window prompt </p>
<button onclick="Average()"> Click Me </button>
<p id="id"></p>

мой результат:

Изображение 174551

  • 2
    Вы используете переменную итерации i для обоих циклов. Выберите другое имя переменной.
  • 0
    ребята помогите пожалуйста решить :(
Показать ещё 9 комментариев
Теги:

2 ответа

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

function Average() {
  var text = "";
  var person = new Array();
  var marks = new Array();
  var grade = new Array();
  for (var i = 0; i < 3; i++) {
    person[i] = window.prompt("enter student name " + (i + 1) + "of 3", "");
    marks[i] = window.prompt("enter student marks " + (i + 1) + "of 3", "");

  }
  for (var i = 0; i < marks.length; i++) {
    if (marks[i] >= 85 && marks[i] <= 100) {
      grade[i] = "HD";
    } else if (marks[i] >= 75 && marks[i] < 85) {
      grade[i] = "D";
    } else if (marks[i] >= 65 && marks[i] < 75) {
      grade[i] = "C";
    } else if (marks[i] >= 50 && marks[i] < 65) {
      grade[i] = "P";
    } else if (marks[i] >= 00 && marks[i] < 50) {
      grade[i] = "F";
    }

    text += "The student name is: " + person[i] + "&nbsp" + "&nbsp" + "their marks are: " + marks[i] + grade[i] + "<br>";
  }
  document.getElementById("id").innerHTML = text;
}
<p> click this to active the window prompt </p>
<button onclick="Average()"> Click Me </button>
<p id="id"></p>

Вам нужно переместить внутренний контур из первого цикла.

  • 1
    спасибо ребята ... спасибо за помощь :) очень ценю это :)
  • 0
    Вы очень кстати.
Показать ещё 1 комментарий
2

Вы не закончили запрос на цикл до начала вычисления цикла. Он должен гласить:

function Average() {
  var text = "";
  var person = new Array();
  var marks = new Array();
  var grade = new Array();
  for (var i = 0; i < 3; i++) {
    person[i] = window.prompt("enter student name " + (i + 1) + "of 3", "");
    marks[i] = window.prompt("enter student marks " + (i + 1) + "of 3", "");
  }
  for (var i = 0; i < marks.length; i++) {
    if (marks[i] >= 85 && marks[i] < 100) {
      grade[i] = "HD";
    } else if (marks[i] >= 75 && marks[i] < 85) {
      grade[i] = "D";
    } else if (marks[i] >= 65 && marks[i] < 75) {
      grade[i] = "C";
    } else if (marks[i] >= 50 && marks[i] < 35) {
      grade[i] = "P";
    } else if (marks[i] >= 00 && marks[i] < 50) {
      grade[i] = "F";
    }

    text += "the student name  is : " + person[i] + "&nbsp" + "&nbsp" + "theirs marks are : " + marks[i] + grade[i] + "<br>";
  }
  document.getElementById("id").innerHTML = text;
}
<p> click this to active the window prompt </p>
<button onclick="Average()"> Click Me </button>
<p id="id"></p>

Кроме того, ваша система маркировки не учитывает 100 (это только <100), и я думаю, что вы набрали "35" вместо "65":

if (marks[i] >= 85 && marks[i] <= 100) {
...
} else if (marks[i] >= 50 && marks[i] < 65) {

Надеюсь это поможет!

Ещё вопросы

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