HTML Academy
New project: driver development
Loops2/28
Back to the list of tasks
  • 1. New project: driver development
  • 2. Managing the number of copies
  • 3. Learning the for loop
  • 4. Correcting the loop
  • 5. Printing the pages in reverse order
  • 6. Printing only odd pages
  • 7. Printing only even pages
  • 8. Printing driver: copy mode
  • 9. Printing driver: all pages
  • 10. Printing driver: pages in reverse order
  • 11. Print driver: even and odd pages
  • 12. Print driver: switching between even and odd pages
  • 13. Accumulation in the loop
  • 14. Checks in loops
  • 15. Searching for an even number
  • 16. How much does printing cost?
  • 17. Economy printing
  • 18. Saving ink
  • 19. Summary of “Loops”. Part 1
  • 20. Third program: “Protein shake!”
  • 21. It’s been a “while”
  • 22. The while loop, summation
  • 23. Another project: a dart machine
  • 24. Dart machine: accumulating misses
  • 25. Dart machine: defeat
  • 26. Dart machine: final scoreboard
  • 27. Summary of “Loops”. Part 2
  • 28. Fourth program: “Mad Dryer”
Learning the for loop
  • Sign up
  • Log in

Loading…
Everything will be ready in few seconds

  • Theory
  • Theory
  • Comments

Managing the number of copies

The driver can make three copies of the given page. Now you need to train it to make a different number of copies depending on the situation. You already know how conditions work, and that’s why you could write the program like this:

// Variable stores the necessary number of copies
var count = 3;

if (count === 2) {
  muffin.print(page);
  muffin.print(page);
}

if (count === 3) {
  muffin.print(page);
  muffin.print(page);
  muffin.print(page);
}

In general, the approach is working, but no one writes programs like that. Imagine a program that can make one hundred copies of one page.

Programming languages provide loops to repeat commands conveniently. Here’s a for loop:

for (var i = 0; i < count; i = i + 1) {
  // repeated commands
}

In this for loop, the commands inside the curly braces run count times. We’ll examine the parts inside the parentheses in the next task. For now, let’s try it out.

Modify the driver so that you can control the number of copies with the variable count.

By the way, in the “Conditions” chapter, we looked at strict (===) and loose (==) equality. Why does the example above use strict equality?

Strict equality helps prevent errors. For example, this condition is true when we use loose equality:

if ('003' == 3) {
  // …
}

The same condition using === is false, because the string '003' is not the same as the number 3. Our program stores the copy count as a number and expects a number in each comparison. Strict equality prevents values of other types from being treated as equal.

Using strict equality is good practice. Use it and nothing else in all cases where possible.

Comments

  • script.js
JavaScript
var page = 7; var count = 3; muffin.print(page); muffin.print(page); muffin.print(page);

What didn’t you like in this task?

Thanks! We’ll fix everything at once!

Console

The code has changed, click “Run” or turn autorun on.

Result

Goalscompleted

Replace command duplication with the for loop.

  1. Delete the muffin.print commands and replace them with the loop: for (var i = 0; i < count; i = i + 1) { }.
  2. Inside the loop, add the command muffin.print(page).
  3. Change the value of the variable count to 5 and make sure that the number of printed copies has changed.

Cookies ∙ Privacy ∙ License Agreement ∙ About ∙ Contacts ∙ © HTML Academy OÜ, 2019−2026

VISAMastercard

Log in

or

Forgot your password?

Sign up

Sign up

or
Log in

Restore access

Have you forgotten your password or lost access to your profile? Enter your email connected to your profile and we will send you a link to restore access.

Forgot to connect your email to the profile? Email us and we’ll help.