for循环(但是一个变量需要if)

时间:2016-03-06 11:27:07

标签: javascript loops for-loop

我需要创建一个创建以下输出的javascript(将其视为学费优惠券)**每个分配方向**

  • 0年级,第1课,第1学期
  • 0年级,第1课,第2学期
  • 1年级第1课,第1个月

等级将增加到8,教室将增加到3,月增加到9。

我遇到的问题是" 0年级的学费必须是每月80学生" vs" 1 - 8年级每月60岁"。

如何在for循环代码中考虑不同的学费?这是我到目前为止所拥有的......



var grade = 0;
var rooms = 1;
var month = 1;
var tuition = 60;

for (grade = 0; grade <= 8; grade++) {
  for (rooms = 1; rooms <= 3; rooms++) {
    for (month = 1; month <= 9; month++) {
      document.write("Grade# " + grade + " Classroom# " + rooms + " Month: " + month + " Tuition $" + (tuition * grade) + "<br/>");
    }
  }
}
&#13;
&#13;
&#13;

提前谢谢。

3 个答案:

答案 0 :(得分:2)

在第一个for循环开始后添加此tuition = ...行:

for (grade = 0; grade <=8; grade++) {
    tuition = grade ? 60 : 80;

这将检查成绩是否为非零。如果是这样,则采用60,否则为80.该值放在学费变量中。

答案 1 :(得分:1)

只需检查成绩并计算学费。

var grade = 0;
var rooms = 1;
var month = 1;

function getTuition(grade) {
    // Will return 80 if grade is less than or equal to 0
    // otherwise it will return 60
    return grade > 0 ? 80 : 60;
}

for (; grade <=8; grade++) {
    for (; rooms <=3; rooms++) {
        for (; month <=9; month++) {
            document.write("Tuition $" + getTuition(grade)  + "<br/>");
        }
    }
}

答案 2 :(得分:1)

如何将房间和月份循环代码放入一个函数中,该函数将成绩和学费作为参数:

    function writeInformation(grade, tuition) {
        var rooms, month;
        var cost; // to track total cost of tuition.
        for (rooms = 1; rooms <= 3; rooms++) {
            for (month = 1; month <= 9; month++) {
                cost = tuition * month;
                document.write("Grade# " + grade + " Classroom# " + rooms + " Month: " + month + " Tuition $" + cost + "<br/>");
            }
        }
    }

然后,我们可以重复使用该功能来解释不同的成绩和学费。

    var grade = 1;
    writeInformation(0, 80); // grade 0, tuition 80

    // grades 1-8, tuition 60
    for(grade = 1; grade <= 8; grade++) {
        writeInformation(grade, 60);
    }

通过这种方式,您可以避免使用if语句来检查是否根据成绩或其他任何方式更改学费。