Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript

unexpected end of input?

I keep getting unexpected end of input for this code. I'm in javascript basics. Help! Thanks!

var correctGuess = false; var randomNumber = Math.floor(Math.random() * 6 ) + 1; var guess = prompt('I am thinking of a number between 1 and 6. What is it?');

if (parseInt(guess) === randomNumber ) { correctGuess = true;}

else if (parseInt(guess) < randomNumber) { var guessMore = prompt (' Try again. The number is more than ' + guess); if (parseInt(guess) === randomNumber ) { correctGuess = true; }

else if (parseInt(guess) > randomNumber) { var guessLess = prompt (' Try again. The number is less than ' + guess); if (parseInt(guess) === randomNumber ) { correctGuess = true;
} if ( correctGuess ) { document.write('<p>You guessed the number!</p>');}
else { document.write('<p>Sorry. The number was ' + randomNumber + '.</p>'); }

Steven Parker
Steven Parker
243,200 Points

To make it clear to read, format your code using the Markdown Cheatsheet pop-up below the "Add an Answer" area. :arrow_heading_down:   Or watch this video on code formatting.

1 Answer

You have two issues

1) You are missing closing brackets in each of your else if blocks. This is the cause of your unexpected end of input.

2) You are not checking your second guess variables (guessMore, guessLess). You check guess instead.

Updated code is below:

var correctGuess = false;
var randomNumber = Math.floor(Math.random() * 6 ) + 1;
var guess = prompt('I am thinking of a number between 1 and 6. What is it?');

if (parseInt(guess) === randomNumber ) {
    correctGuess = true;}
else if (parseInt(guess) < randomNumber) {
    var guessMore = prompt (' Try again. The number is more than ' + guess);

    if (parseInt(guessMore) === randomNumber ) {
        correctGuess = true; 
    }
}  // <---missing
else if (parseInt(guess) > randomNumber) { 
    var guessLess = prompt (' Try again. The number is less than ' + guess);
    if (parseInt(guessLess) === randomNumber ) {
        correctGuess = true;
    }
}  // <---missing
if ( correctGuess ) {
    document.write('<p>You guessed the number!</p>');
}
else {
    document.write('<p>Sorry. The number was ' + randomNumber + '.</p>'); 
}

Ok thanks for your help!! I get it now.