## 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.

# Uncaught SyntaxError: Unexpected token else (JavaScript)

Hello! What's wrong whit this code? :D else if ( tryAgain.toUpperCase() === "YES" );

(I will put the whole code in the comments! :)

```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?');
var tryAgain = prompt("I said a number between 1 and 6! Do you want to try again?");

// Ser om de är rätt på första
if ( parseInt(guess) === randomNumber ) {
correctGuess = true;

// Om int de är rätt sir de om de är större än 6, om det är det så skickas tryAgain
} else if (parseInt(guess) > 6 ); {
prompt(tryAgain)

// Om dom svar "yes" på tryAgin så skikcas reload ut
} else if ( tryAgain.toUpperCase() === "YES" ); {

// Om talet är mindre än 1 så skickas tryAgin ut igen
} else if ( parseInt(guess) < 1 ); {
prompt(tryAgain);

// Om dom svar "yes" på tryAgin så skikcas reload ut
} else if (tryAgain.toUpperCase() === 'YES'); {

// Ser om randomNumber är större en guess isåfall skickas guessMore ut
} else if ( parseInt(guess) < randomNumber ); {
var guessMore = prompt('Try again! The number is higher than ' + guess);

// Ser om svaret är rätt
} else if (parseInt(guessMore) === randomNumber); {
correctGuess = True;

// Ser om randomNumber är mindre än guess isåfall skickas guessLess ut
} else if ( parseInt(guess) > randomNumber ); {
var guessLess = prompt("Try again! The number is lower than " + guess);

// Ser om svaret är rätt
} if (parseInt(guessLess) === randomNumber); {
correctGuess = true;
}

// Om svaret är rätt skickas det här ut
else if ( correctGuess ); {
document.write('<p>You guessed the number!</p>');

// Om det var fel så skickas det är ut
} else  {
document.write('<p>Sorry. The number was ' + randomNumber + ' .</p>');
}
(don't mind the "comments" (in swedish)
```

STAFF

Hi there! I feel like you're doing fairly well, but in almost every one of your blocks you have an extra semicolon after your condition. This causes a syntax error.

The first one occurs on line 12. You wrote:

```else if (parseInt(guess) > 6 );
```

But that expression is concluded with a semicolon. This is what is causing your syntax errors. That should be:

```else if (parseInt(guess) > 6 )  // Note the removal of the semicolon here.
```

Hope this helps (och trevlig helg!)

Hi Otto! Jennifer is right. Delete all semicolon after else if statements.

```if () {
//
} else if () {
//  ; <- And here use semicolon
} else if () {
//  ; <- And here use semicolon
}
```

And so on.

Thanks! I still have a problem, it says "Uncaught SyntaxError: Unexpected token else script.js:49" But i don't find it! the code is the same (but without the semicolon's) What is wrong? :) (btw 49 is the "} else {")

Hi Otto!

The issue is the semicolons in your if statements. In JS syntax, you'll want to use semicolons at the end of statements. An if statement is going to look like

```if (condition) {
.. code to execute
};
```

Notice the semicolon at the end, and not after the condition. The if statement ends after the closing bracket }, not after the condition. Remove the semicolons from your code and it will execute just fine.

Best, Daan

```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?');
var tryAgain = prompt("I said a number between 1 and 6! Do you want to try again?");

// Ser om de är rätt på första
if ( parseInt(guess) === randomNumber ) {
correctGuess = true;

// Om int de är rätt sir de om de är större än 6, om det är det så skickas tryAgain
} else if (parseInt(guess) > 6 ) {
prompt(tryAgain)

// Om dom svar "yes" på tryAgin så skikcas reload ut
} else if ( tryAgain.toUpperCase() === "YES" ) {

// Om talet är mindre än 1 så skickas tryAgin ut igen
} else if ( parseInt(guess) < 1 ) {
prompt(tryAgain);

// Om dom svar "yes" på tryAgin så skikcas reload ut
} else if (tryAgain.toUpperCase() === 'YES') {

// Ser om randomNumber är större en guess isåfall skickas guessMore ut
} else if ( parseInt(guess) < randomNumber ) {
var guessMore = prompt('Try again! The number is higher than ' + guess);

// Ser om svaret är rätt
} else if (parseInt(guessMore) === randomNumber) {
correctGuess = true;

// Ser om randomNumber är mindre än guess isåfall skickas guessLess ut
} else if ( parseInt(guess) > randomNumber ) {
var guessLess = prompt("Try again! The number is lower than " + guess)

// Ser om svaret är rätt
} if (parseInt(guessLess) === randomNumber) {
correctGuess = true;
}

// Om svaret är rätt skickas det här ut
else if ( correctGuess ); {
document.write('<p>You guessed the number!</p>');

// Om det var fel så skickas det är ut
} else {
document.write('<p>Sorry. The number was ' + randomNumber + ' .</p>');
}
```

This is the code I Have now! Have i missed anyone?

Yup! There's still one left. On line 45 you have:

```else if ( correctGuess ); {
```

but you should have:

```else if ( correctGuess ) {
```

Just an extraneous semicolon left over

I still have a problem, the "if's" doesn't see if it is True or False it just goes in order as it is int the code! the code:

``` 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?');
var tryAgain = prompt("I said a number between 1 and 6! Do you want to try again?");

// Ser om de är rätt på första
if ( parseInt(guess) === randomNumber ) {
correctGuess = true;

// Om int de är rätt sir de om de är större än 6, om det är det så skickas tryAgain
} else if (parseInt(guess) > 6 ) {
prompt(tryAgain)

// Om dom svar "yes" på tryAgin så skikcas reload ut
} else if ( tryAgain.toUpperCase() === "YES" ) {

// Om talet är mindre än 1 så skickas tryAgin ut igen
} else if ( parseInt(guess) < 1 ) {
prompt(tryAgain);

// Om dom svar "yes" på tryAgin så skikcas reload ut
} else if (tryAgain.toUpperCase() === 'YES') {

// Ser om randomNumber är större en guess isåfall skickas guessMore ut
} else if ( parseInt(guess) < randomNumber ) {
var guessMore = prompt('Try again! The number is higher than ' + guess);

// Ser om svaret är rätt
} else if (parseInt(guessMore) === randomNumber) {
correctGuess = true;

// Ser om randomNumber är mindre än guess isåfall skickas guessLess ut
} else if ( parseInt(guess) > randomNumber ) {
var guessLess = prompt("Try again! The number is lower than " + guess)

// Ser om svaret är rätt
} if (parseInt(guessLess) === randomNumber) {
correctGuess = true;
}

// Om svaret är rätt skickas det här ut
else if ( correctGuess ) {
document.write('<p>You guessed the number!</p>');

// Om det var fel så skickas det är ut
} else {
document.write('<p>Sorry. The number was ' + randomNumber + ' .</p>');
}
```

I am not sure, but try how delete the correctGuess global variable from both places.

From where do you mean? The first Var and the else if ( correctGuess ) {?

I thought so.

```var randomNumber = Math.floor(Math.random() * 6 ) + 1;
var guess = prompt('I am thinking of a number between 1 and 6. What is it?');
var tryAgain = prompt("I said a number between 1 and 6! Do you want to try again?");

// Ser om de är rätt på första
if ( parseInt(guess) === randomNumber ) {

// Om int de är rätt sir de om de är större än 6, om det är det så skickas tryAgain
} else if (parseInt(guess) > 6 ) {
prompt(tryAgain)

// Om dom svar "yes" på tryAgin så skikcas reload ut
} else if ( tryAgain.toUpperCase() === "YES" ) {

// Om talet är mindre än 1 så skickas tryAgin ut igen
} else if ( parseInt(guess) < 1 ) {
prompt(tryAgain);

// Om dom svar "yes" på tryAgin så skikcas reload ut
} else if (tryAgain.toUpperCase() === 'YES') {

// Ser om randomNumber är större en guess isåfall skickas guessMore ut
} else if ( parseInt(guess) < randomNumber ) {
var guessMore = prompt('Try again! The number is higher than ' + guess);

// Ser om svaret är rätt
} else if (parseInt(guessMore) === randomNumber) {
correctGuess = true;

// Ser om randomNumber är mindre än guess isåfall skickas guessLess ut
} else if ( parseInt(guess) > randomNumber ) {
var guessLess = prompt("Try again! The number is lower than " + guess)

// Ser om svaret är rätt
} if (parseInt(guessLess) === randomNumber) {
correctGuess = true;
}

// Om svaret är rätt skickas det här ut
else if ( correctGuess ) {
document.write('<p>You guessed the number!</p>');

// Om det var fel så skickas det är ut
} else {
document.write('<p>Sorry. The number was ' + randomNumber + ' .</p>');
}
```

Mate, at some point you're gonna have to do some independent debugging w/o asking others.

I know... But i just need some help xD But i will try to for some hours again now!

UPDATE: I solved the problem by moving down the varibles tho the place they should come in, but i have gotten a new problem... Error: it only shows the first prompt if you write a number from 1 to 6 same if you write a number below 1 but if you write a number over 6 you get the first two ones! Erro-message:Uncaught TypeError: "Cannot read property 'toUpperCase' of undefined at script.js:17" Code:

```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?');

// Ser om de är rätt på första
if ( parseInt(guess) === randomNumber ) {
correctGuess = true;
} else if ( correctGuess === true ) {
alert("Congratulations! You guessed the number right!");
// Om int de är rätt sir de om de är större än 6, om det är det så skickas tryAgain
} else if (parseInt(guess) > 6 ) {
var tryAgain = prompt("I said a number between 1 and 6! Do you want to try again?");

// Om dom svar "yes" på tryAgin så skikcas reload ut
} else if (tryAgain.toUpperCase() === 'YES') {

// Om talet är mindre än 1 så skickas tryAgin ut igen
} else if ( parseInt(guess) < 1 ) {
prompt(tryAgain);

// Om dom svar "yes" på tryAgin så skikcas reload ut
} else if (tryAgain.toUpperCase() === 'YES') {

// Ser om randomNumber är större en guess isåfall skickas guessMore ut
} else if ( parseInt(guess) < randomNumber ) {
var guessMore = prompt('Try again! The number is higher than ' + guess);

// Ser om svaret är rätt
} else if (parseInt(guessMore) === randomNumber) {
correctGuess = true;

// Ser om randomNumber är mindre än guess isåfall skickas guessLess ut
} else if ( parseInt(guess) > randomNumber ) {
var guessLess = prompt("Try again! The number is lower than " + guess);

// Ser om svaret är rätt
} else if (parseInt(guessLess) === randomNumber) {
correctGuess = true;
} // Om svaret är rätt skickas det här ut
else if ( correctGuess ) {
document.write('<p>You guessed the number!</p>');

// Om det var fel så skickas det är ut
} else {
document.write('<p>Sorry. The number was ' + randomNumber + ' .</p>');
}
```

Okay Adam! 1. looks if it is right on the first try 2. if not then looks if it is bigger than 6 if so sends out tryAgain 3.if they answear "yes" on tryAgain then reload sends out 4. if the number is samller than 1 tryAgain sends out 5. same as 3. 6.looks if randomNumber is bigger than guess if so guessMore sends out 7. looks if the answear is right 8. looks if randomNumber is smaller than guess if so guessLess sends out 9. looks if the answear is right 10. if so then this sends out 11. if it was wrong this sends out!