L'invite est:

Convertissez l'instruction if-else-if suivante en une instruction switch. Ne réécrivez pas les constantes ou les définitions de variables, juste l'instruction if.

final char BLT = 'b';
final char VEGAN = 'v';
final char TUNA = 't';
final char ROAST_BEEF = 'r';

double price;
int sandwichType;

System.out.println("Enter sandwich type: ");

sandwichType = keyboard.nextLine().charAt(0);

if (sandwichType == VEGAN || sandwichType == TUNA) {
   price = 3.99;
} else if (sandwichType == BLT) {
   price = 4.19;
} else if (sandwichType == ROAST_BEEF) {
   price = 4.99;
} else {
   System.out.println("That's not a valid sandwich type.");
   System.exit(0);    // This ends the program
}

System.out.println("Your total is is $" + (price*1.0825));

Mon code actuel est le suivant:

switch (sandwichType) {
        case 1:System.out.println("The price is $" + (3.99*1.0825));
        case 2: System.out.println("The price is $" + (4.19*1.0825));
        case 3: System.out.println("The price is $" + (4.99*1.0825));
        break;
-1
emuthorn7 18 mars 2021 à 01:38

2 réponses

Meilleure réponse

Vous oubliez les pauses entre les boîtiers de commutation. Vous voudrez également utiliser les noms de caractères des différents sandwichs au lieu de nombres. Enfin, si aucun des cas ne correspond au sandwhichType donné, vous souhaiterez avoir un cas par défaut, ce serait essentiellement votre instruction else du code précédent. La seule pièce délicate est le premier cas qui accepte deux types différents, ce qui peut être fait en ayant un cas suivi d'un autre cas.

switch (sandwhichType)
{
        case VEGAN:
        case TUNA:
           price = 3.99;
           break;
        case BLT:
           price = 4.19;
           break;
        case ROAST_BEEF:
           price = 4.99;
           break;
        default:
           System.out.println("That's not a valid sandwich type.");
           System.exit(0);
           break;
}

System.out.println("Your total is is $" + (price*1.0825));
1
RAZ_Muh_Taz 17 mars 2021 à 22:49

Les cas devraient être des options

case BLT:

Vous avez également besoin d'un cas par défaut

default:
    break;

Et break; après chaque cas.

0
mindoverflow 17 mars 2021 à 22:41