mardi 18 avril 2017

for cycle and if statements

I've encountered some misundertanding. There is a for cycle with some if statements:

for(var number=1; number<100; number++) {
if (number % 3 == 0 && number % 5 == 0 ) 
    console.log(number + "fizzbuzz");
if (number % 5 == 0) 
    console.log(number + " buzz");
if (number % 3 == 0) 
    console.log(number + " fizz");  
else console.log(number);    
}

The output of this code is 1, 2, 3 fizz, 4, 5 buzz, etc. So it's what expected. But if we delete braces the output will be like this: 15fizzbuzz 30fizzbuzz 45fizzbuzz 60fizzbuzz 75fizzbuzz 90fizzbuzz 100 buzz 100

Also, there is a second implementation of this program(with the right-way if-else statements):

 for(var number=1; number<100; number++)    
if (number % 3 == 0 && number % 5 == 0 ) 
    console.log(number + "fizzbuzz");
else if (number % 5 == 0) 
    console.log(number + "buzz");
else if (number % 3 == 0) 
    console.log(number + "fizz");   
else console.log(number);

Notice that there are no braces too, but the output is ok. Can you explain, what's the difference?

Aucun commentaire:

Enregistrer un commentaire