# Sleep Debt Calculator - Semicolon

Hi, I am working on Sleep Debt Calculator project
My code at step 9:

``````const calculateSleepDebt = () => {
const actualSleepHours = getActualSleepHours();
const idealSleepHours = getIdealSleepHours();

if(actualSleepHours === idealSleepHours) {
console.log("You've got enough sleep!")
};

else if (actualSleepHours > idealSleepHours) {
console.log("You sleep too much!")
}

else if (actualSleepHours < idealSleepHours){
}
else {
console.log("Error! Something went wrong! Check your code!")
}
}

``````

In the first if statement, I dropped â€ś;â€ť at the end, and this generates â€śUnexpected token elseâ€ť. When I deleted that semicolon, the code ran. I wonder whether thereâ€™s anything wrong with the semicolon or the coding platform itself is erroneous.

We never write a semicolon before else, since it is part of an ongoing statement.

1 Like

Do you have any documents that may explain this further?

It becomes moot rather quick once we get the basics down.

Semi-colons tell the interpreter where to stop parsing a statement. Some statements are constructs with code bodies which act as delimiters. Those statements do not need an end of statement token.

``````if () {} else if () {} else {}
while () {}
switch () {}
function () {}
``````

None of the above statements requires a semi-colon.

Assignments are statements with an expression on the right hand side. We end such statements with a, `;`. That is one of the more obvious usages.

``````let a = 42;

const name = "Wee Gillis";

let y = a * x ** 2 + b * x + c;

const f = (m, b) => x => m * x + b;
console.log(f(-1, 0)(5));   // expected, -5
``````

The last example will come up in a later unit so just take it in prose as a literal example.

2 Likes