Chcę użyć instrukcji switch, a mój warunek dla if to:
if (userInput%2 == 0 || userInput != 0)
Czy mogę pobrać z tego kodu dwie sprawy do wykonania różnych akcji userInput == 0
i inny dla userInput == 0
case ?:
case ?:
Odpowiedzi:
3 dla odpowiedzi № 1Nie możesz, ponieważ zestaw wartości spełnia dwa warunki zakładka. W szczególności wszystkie liczby parzyste spełniają obie części twoich warunków. Dlatego nie można wykonywać różnych akcji bez zdecydowania, która część warunku ma pierwszeństwo.
Możesz zagrać w małą sztuczkę z wpadnięciem do środka switch
oświadczenie, takie jak to:
switch(userInput%2) {
case 0:
// Do things for the case when userInput%2 == 0
...
// Note: missing "break" here is intentional
default:
if (userInput == 0) break;
// Do things for the case when user input is non-zero
// This code will execute when userInput is even, too,
// because of the missing break.
...
}
2 dla odpowiedzi nr 2
Dlaczego nie po prostu podzielić if
komunikat
if (userInput%2 == 0) {
// something
}
else if (userInput != 0) {
// something else
}
Należy pamiętać, że kolejność testów będzie ważna, ponieważ wszystkie niezerowe liczby parzyste spełniają oba testy.