# Singular-plural agreement

`Preformatted text`Hi, I’m HydeB and I’m new here.

I’m having a bit of problem with a few lines of code and I’d like to understand what I’m doing wrong: I’m a newbie to JS.

It is a simple conversion of temperatures. I can get it all done but for a thing: between -1 and 1, I need the console to display ‘degree’ instead of ‘degrees’.

Here’s my code:

``````let cn, cf;

if (f > 1) {cf = 'degrees'}
else if (f < 1) {cf = 'degree'}; //works as expected: -9 'degree' and 2 'degrees';

if (n > 1) {cn = 'degrees'}
else if (n < 1, n < -1) {cn = 'degree'}; //returns 'undefined'.
//else if (n < -1) {cn = 'degrees'}; //doesn't work;
``````

Messing around with the <> symbols don’t help.

I tried to look up for some kind of interval, something as in ‘else if (n = -1:1)’. No such thing. All I got for intervals was loop instructions.

I’d appreciate any pointers.

This isn’t a valid condition.

Side note - you should really use some sort of consistent formatting. Your code is hard to read.

1 Like
``````else if (n < 1, n < -1) {cn = ‘degree’}; //returns ‘undefined’.
else if (n < -1) {cn = ‘degrees’}; //doesn’t work;
``````

in the first line, I think you are trying to use logical AND `&&`. instead of using `,` which creates two `conditions` that are invaild.

Logical AND (&&) - JavaScript | MDN (mozilla.org)

your issue is that the code is invaild, but is executable. the way it excuted, that it checks `if (n < 1)` while ignoring `(n > -1)`. so if you fix the first `else if` statement you will be good to go.

1 Like

Got it:

cn = ‘degrees’;

if (n <= 1) {cn = ‘degree’};
if (n <= -1) {cn = ‘degrees’};

Thanks for the tip and for taking the time to help me.

Thanks for the tip on && and for taking the time to help me.

1 Like

Did as you suggested and works too:

``````let k, kc;

k = 1

kc = 'degrees'

if (k <= 1  &&  k >= -1)  {kc = 'degree'};

console.log(`The temperature is \${k} \${kc}.`);
``````

PS: Is my code a bit clearer?

Tks again!

is my code a bit clearer

I won’t lie, not really.

I think what jeremy meant with format is adding defining `names` that easy to understand instead of `k` `ks` for example.

``````let temperature, degree;

temperature = 1;

degree = "fahrenheits"

if (temperature <= 1  &&  temperature >= -1) {
degree = 'fahrenheit'
};

console.log(`The temperature is \${temperature} \${degree}.`);
``````

don’t worry about spacing and stuff like that, most IDE take care of it, and there is `prettier` to back you up if needed.

Prettier · Opinionated Code Formatter

1 Like

I was thinking a bit about variable names, but also about indentation.

Inconsistent indentation is harder to read. Also, it’s a bit strange to use {} when you stick the if statement body all on the same line as the condition.

``````if (condition) { /* this is odd */ }
else if (condition2) { /* also this indentation is odd */ }

if (condition) {
// this is more standard
} else {
// and consistent
}

if (condition1) /* or this */;
else if (condition2) /* with this */;
``````

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.