[英]Keep prompting in loop on false if condition
我正在制作一個程序,教師在其中輸入與一定數量的作業(老師指定作業)相對應的學生的姓名和成績。
我要使其成為輸入等級的數字值。 因此,我添加了以下代碼:
for (var g = 1; g <= assignments; g++) {
var grade = prompt("Please enter the student score for assignment" + g + ".");
if(typeof grade === 'number' && Math.Round(grade) % 1 == 0) {
return true;
}
else{
var grade = prompt("Please enter the student score for assignment" + g + ".");
}
var gradecolumn = document.createElement("td");
var gradetext = document.createTextNode(grade);
gradecolumn.appendChild(gradetext);
rowtwo.appendChild(gradecolumn);
}
我已經停下來了……但是我要這樣做,這樣它將繼續提示直到用戶輸入有效的數據類型。
我遇到的另一個問題是,我想將等級合並在一起, 然后輸入累積分數並計算累積等級,以按一定的等級比例分配字母等級...我知道我將通過多條件if /來分配字母等級否則,如果聲明。 但是我不確定在輸入分數后如何稱呼分數,以及如何將分數相加,以便將結果輸入多條件部分。
任何幫助將不勝感激。此外,我是否應該使用parseInt來進行任何此操作?
var range = {"A": 100, "B": 75, "C": 50, "D": 30, "E": 20, "F": 10}, score = 0;
for (var g = 1; g <= 3; g++) {
var grade = undefined, letter = '';
while (!grade) {
var grade = prompt("Please enter the student score for assignment" + g + ".");
if (parseInt(grade)) {
// accumulate score
score += parseInt(grade);
}
// grade is not a number
else grade = undefined;
}
}
// check for mark
for (key in range) {
if (score<range[key]) letter = key;
}
if (!letter) alert("score "+score+" is out of range!");
else {
alert(letter); // now you have it
}
演示也已更新: http : //jsfiddle.net/vladkras/jNg2m/2/
嘗試這個:
var g = 1;
var assignments = 5;
var done = false;
var grade, gradecolumn, gradetext;
while (!done)
{
grade = prompt("Please enter the student score for assignment " + g + ".");
if((grade+'').search(/^[0-9]{1,3}$/) > -1)
{
gradecolumn = document.createElement("td");
gradetext = document.createTextNode(grade);
gradecolumn.appendChild(gradetext);
rowtwo.appendChild(gradecolumn);
// increment the counter
g++;
if (g > assignments)
{
done = true;
}
}
else
{
alert('Please enter a valid score for assignment '+g+'.');
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.