You're confusing English with C#.
TL;DR: Use the && operator to check for all three, instead of just checking for any of the three.
You're currently checking: if the number is either not one, or not two, or not three, then say "wrong number".
if (number != 1 || number != 2 || number != 3)
Take, for example, number = 1. The code will first check whether number != 1, and will return false. However, since you're using an OR statement, it will check the next one. What ends up happening is this:
if (false || true || true)
Since you're using OR, C# checks to see if ANY of those are true. So this further simplifies to the following:
if (true)
Since a number can not be !=1, !=2, and !=3 at the same time, this will always have at least two trues. Therefore, if you use the OR operator, the expression will always return true
What you want is the && operator.
//if number is NOT 1 AND NOT 2 AND NOT 3
if (number != 1 && number != 2 && number != 3)
With the example above, this would simplify to this:
if (false && true && true)
Which goes further to:
if (false)
//wrong number
Which will skip the inside, because 1 is a right number. If 1, 2, and 3 are wrong numbers, just put an exclamation point before the entire block, as follows:
if (!(number != 1 && number != 2 && number != 3))
&&- "And" operator