JasonL95
JasonL95

Reputation: 97

JavaScript For Loop with user entry error

I am currently dabbling with JavaScript and am doing some simple calculations using for loops and I am attempting to take user info for the Table set they want and the numbers they wish to multiply between e.g.

This would print:

  1. 12 x 3 = 36
  2. 12 x 4 = 48
  3. 12 x 5 = 60
  4. 12 x 6 = 72

My issue is that when I ask the user to select how high they wish to multiply to, if they select a number greater than 9 it doesn't enter the for loop and prints nothing yet 9 and below works.

This is the simple enough code:

   function UserEnteredTables()
   {
       var tableNumber = prompt("Please enter the number tables to use: ");
       var numberLowerLimit = prompt("Please select where you want to start multiplying from: ");
       var numberUpperLimit = prompt("Please select how high to multiply to: ");
       document.write("Before the loop " + numberUpperLimit + "<br/>");

      for (i = numberLowerLimit; i <= numberUpperLimit; i++)
      {
          document.write("Made it inside the loop " + "<br/>");
          document.write(tableNumber + " * " + i + " = " + (i * tableNumber) + "<br/>");
      }
      document.write("After the loop " + numberUpperLimit);
  }

Apologies for any indentation issues, had issues pasting for some reason

I have attached two images, one where I enter the upper limit to 9 and then one were I enter 10. As you can see the 10 doesn't enter the loop.

I assume that I have missed something very simple but I would appreciate if someone could explain what the issue is or if its something to do with JavaScript loops.

Limit of 9 Limit of 10

If there is something wrong with the post or you require some other code to fully understand just let me know.

Thanks in advance :)

Upvotes: 0

Views: 63

Answers (1)

BeNdErR
BeNdErR

Reputation: 17927

The issue is with the prompt value returned: its typeof is string, while what you want is number for the loop to work correctly.

Use parse() to extract the numeric value out of the prompt value, see here:

https://jsfiddle.net/jwvj2aab/1/

Note that you will need to handle user input in order to deny anything but numbers

Upvotes: 1

Related Questions