The way to look at if statements is like this (it might sound a bit convoluted now, but this will eventually become a natural way to think of it)

In simple terms, false is 0, true is NOT 0…

When you use AND, OR, or NOT operators (&&, || and ! respectively), you’re telling the computer to compare EACH side of that operator, and return based on the results

AND = return true if *BOTH* sides are true (non-zero)

OR = return true if **EITHER** side is true (non-zero)

! = return true if statement is false (zero)

So, using that logic with your statement

(Response[0] == ‘y’ || ‘Y’)

‘Y’ is a non-zero value (after all, it’s **Y**, not **0** )

So, since the || operator tells the program to return true if EITHER side is true (non-zero), your statement would ALWAYS return true. Therefore, even if you typed in a chinese symbol, it would still return true.

That’s why you need to use the full statement

(Response[0] == ‘y’) || (Response[0] == ‘Y’);

Because you need both sides of the statement to do a comparison to your response.

Did that make enough sense?