Ja sa učím java a mám problémy s príkazom switch-case s výrazom. Môže mi niekto pomôcť? Nedokážem pochopiť, kde robím chybu.
package SecondSet_StartingArray;
import java.util.Scanner;
public class Testing
{
public static void main(String[] args) {
System.out.println("Enter a Number between 1 & 100");
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
switch (i)
{
case (i>90): System.out.println("Rating 5");break;
case (i<=90): System.out.println("Rating 4");break;
case (i<=60): System.out.println("Rating 3");break;
case(i<=30): System.out.println("Rating 2");break;
case(i>29): System.out.println("Rating 1");break;
}
}
}
odpovede:
5 pre odpoveď č. 1Nemôžete použiť prepínač s booleovskými výrazmi, ako je case (i<=90)
, Vaše prípady musia byť neustále vyjadrené.
case 90: whatever; break;
case 120: whatever; break;
case SOME_CONSTANT: whatever; break;
Pre vaše potreby by ste museli použiť vyhlásenia if-else-if.
2 pre odpoveď č. 2
To, čo sa snažíte realizovať, je if-else-statement
. Switch-Statements
sa používajú pri pokuse o vyhodnotenie konštantných hodnôt.
1 pre odpoveď č. 3
Ako môžete čítať v jazykovom jazyku Java tu:
Všetky tieto skutočnosti musia byť pravdivé alebo sa vyskytne chyba kompilácie:
- Každý konštantný výraz spojený s výkazom spínača musí byť priraditeľný (§5.2) k typu prepínača Expression.
- Žiadne dva konštantné výrazy prípadu spojené s príkazom prepínača nemusia mať rovnakú hodnotu.
- Žiadna značka spínača nie je null.
- Maximálne jeden predvolený štítok môže byť priradený k rovnakému prepínaču.
Vo svojom kóde prvý bod nie je splnený. Možno budete chcieť použiť if-else-if
vyhlásenie namiesto switch
tu vykonať správnu kontrolu hodnoty uloženej v i
.