Programming Fundamentals/Loop Examples JavaScript

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Temperature[edit]

// This program displays a temperature conversion table showing Fahrenheit
// temperatures from 0 to 100, in increments of 10, and the corresponding 
// Celsius temperatures using While, Do While, and For loops.
//
// References:
//   https://www.mathsisfun.com/temperature-conversion.html
//   https://en.wikibooks.org/wiki/JavaScript

main();

function main() {
    whileLoop();
    doLoop();
    forLoop();
}

function whileLoop() {
    var fahrenheit;
    var celsius;
    
    displayHeading();
    fahrenheit = 0;
    while (fahrenheit <= 100) {
        celsius = calculateCelsius(fahrenheit);
        displayResult(fahrenheit, celsius);
        fahrenheit += 10;
    }
    output("");
}

function doLoop() {
    var fahrenheit;
    var celsius;
    
    displayHeading();
    fahrenheit = 0;
    do {
        celsius = calculateCelsius(fahrenheit);
        displayResult(fahrenheit, celsius);
        fahrenheit += 10;
    } while (fahrenheit <= 100);
    output("");
}

function forLoop() {
    var fahrenheit;
    var celsius;
    
    displayHeading();
    for (fahrenheit = 0 ; fahrenheit <= 100 ; fahrenheit += 10) {
        celsius = calculateCelsius(fahrenheit);
        displayResult(fahrenheit, celsius);
    }
    output("");
}

function displayHeading() {
    output("F°\tC°");
}

function calculateCelsius(fahrenheit) {
    var celsius;

    celsius = (fahrenheit - 32) * 5 / 9;

    return celsius;
}

function displayResult(fahrenheit, celsius) {
    output(fahrenheit.toString() + "\t" + celsius.toString());
}

function output(text) {
  if (typeof document === 'object') {
    document.write(text);
  } 
  else if (typeof console === 'object') {
    console.log(text);
  } 
  else {
    print(text);
  }
}

Output[edit]

F°	C°
0	-17.77777777777778
10	-12.222222222222221
20	-6.666666666666667
30	-1.1111111111111112
40	4.444444444444445
50	10
60	15.555555555555555
70	21.11111111111111
80	26.666666666666668
90	32.22222222222222
100	37.77777777777778

F°	C°
0	-17.77777777777778
10	-12.222222222222221
20	-6.666666666666667
30	-1.1111111111111112
40	4.444444444444445
50	10
60	15.555555555555555
70	21.11111111111111
80	26.666666666666668
90	32.22222222222222
100	37.77777777777778

F°	C°
0	-17.77777777777778
10	-12.222222222222221
20	-6.666666666666667
30	-1.1111111111111112
40	4.444444444444445
50	10
60	15.555555555555555
70	21.11111111111111
80	26.666666666666668
90	32.22222222222222
100	37.77777777777778

References[edit]