J'ai besoin de créer un javascript qui crée la sortie suivante (pensez-y comme un livre de coupons de scolarité) ** Par instructions d'affectation **

  • Classe 0, classe 1, mois 1
  • Classe 0, classe 1, mois 2
  • 1re année Classe 1, mois 1

La note augmenterait jusqu'à 8, la salle de classe augmenterait jusqu'à 3, le mois augmenterait jusqu'à 9.

Le problème que j'ai est "les frais de scolarité de grade 0 doivent être de 80 par mois" vs "les grades 1-8 sont de 60 par mois".

Comment tenir compte des différents frais de scolarité dans mon code de boucle for? Voici ce que j'ai jusqu'à présent ...

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/>");
    }
  }
}

Merci d'avance.

1
Nate E. 6 mars 2016 à 14:27

3 réponses

Meilleure réponse

Vérifiez simplement la note et déterminez les frais de scolarité.

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/>");
        }
    }
}
1
David Barker 6 mars 2016 à 17:08

Que diriez-vous de mettre le code de boucle de chambre et de mois dans une fonction, qui prend le grade et les frais de scolarité comme arguments:

    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/>");
            }
        }
    }

Ensuite, nous pouvons réutiliser la fonction pour tenir compte des différents grades et frais de scolarité.

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

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

Avec cela, vous évitez d'avoir à utiliser une instruction if pour vérifier si vous souhaitez modifier les frais de scolarité en fonction du grade ou autre.

1
DMO-NZ 6 mars 2016 à 12:24

Ajoutez cette ligne tuition = ... après le début de la première boucle for:

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

Cela vérifiera si la note n'est pas nulle. Si c'est le cas, 60 est pris, sinon 80. Cette valeur est placée dans la variable tuition .

2
trincot 6 mars 2016 à 11:35