/ / Switch vyhlásenie s booleovskými výrazmi v prípade štítkov [duplicate] - java, switch-statement

Prepnúť vyhlásenie s logických výrazov v prípade označenia [duplikát] - java, prepínač-vyhlásenie

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ď č. 1

Nemôž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:

  1. 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.
  2. Žiadne dva konštantné výrazy prípadu spojené s príkazom prepínača nemusia mať rovnakú hodnotu.
  3. Žiadna značka spínača nie je null.
  4. 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.