簡體   English   中英

如果條件不成立,則繼續在循環中提示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM