bea405
bea405

Reputation: 13

nested if else statement in a for loop

I'm new to stackoverflow and I'm interested in learning javascript for fun. I've only been studying for about a couple of weeks so far and I'm trying to solve a coding exercise but I'm having a hard time doing it. Below is my code and I keep getting an error that states I'm missing a ( before a condition. I've looked it over several times and don't see where I'm missing the (. Thanks guys.

var numbers = 0;
for (numbers = 0; numbers < 101; numbers++) {
  if (numbers % 3 === 0 && numbers != 0)
    if (numbers % 5 === 0)
      document.write("fizzbuzz <br>");
    else {
      document.write("fizz <br>");
    }
  if
  else(numbers % 5 === 0 && numbers != 0) {
    document.write("buzz <br>");
  }
  else {
    document.write("This is the number " + numbers + " in the 10 base number      scale. <br>");
  }
}

Upvotes: 1

Views: 75

Answers (3)

System developer
System developer

Reputation: 36

The if is written before else when it should be the opposite, see the "<-------------- HERE"-mark.

var numbers = 0;
for (numbers = 0; numbers < 101; numbers++) {
  if (numbers % 3 === 0 && numbers != 0)
    if (numbers % 5 === 0)
      document.write("fizzbuzz <br>");
    else {
      document.write("fizz <br>");
    }
  if <-------------- HERE
  else(numbers % 5 === 0 && numbers != 0) {
    document.write("buzz <br>");
  }
  else {
    document.write("This is the number " + numbers + " in the 10 base number      scale. <br>");
  }
}

It should be:

else if (numbers % 5 === 0 && numbers != 0)
{
    document.write("buzz <br>");
}

Upvotes: 0

Aditya Singh
Aditya Singh

Reputation: 16660

Even though its perfectly fine to use if-else without {} for single line statements, it usually creates problem than saving some characters. Its always preferred to use the {} to avoid confusion even though for single line statements. Also you have interchanged else if with an if else before the check for number%5. You can change your code to below

var numbers = 0;

for(numbers = 0; numbers < 101; numbers++){
  if(numbers%3===0 && numbers !=0) {
    if(numbers%5===0) {
      document.write("fizzbuzz <br>");
    } else{
      document.write("fizz <br>");
    } 
  } else if (numbers%5===0 && numbers !=0){
    document.write("buzz <br>");
  } else{
    document.write("This is the number " + numbers + " in the 10 base number      scale. <br>");
  }
}

Upvotes: 0

jdmdevdotnet
jdmdevdotnet

Reputation: 1

if else is what you have.

else if is what it should be.

So because you put the if before else, it's expecting a (. This should fix your problem.

Upvotes: 3

Related Questions