2010-06-27 7 views
1

Je prends une classe java en ligne et l'enseignant a demandé ce qui suit: Écrire un programme de menu qui demande à un utilisateur un nombre indiquant les quatre équations mathématiques de base (addition, soustraction , multiplication, division). En utilisant une structure if/else pour effectuer l'opération requise, demandez à l'utilisateur les entrées et résolvez l'équation. Je suis nouveau à ce sujet, mais je ne vois pas l'intérêt de l'if/else, mais je suppose que c'est irrelavent.comment combiner des instructions switch et if

Si j'utilise les cas 1, 2, 3, 4 ci-dessous pour déterminer l'opération, comment puis-je récrire le cas avec une instruction 'If'?

int userSelection; 
double x;   
double y;   
double answer; 

switch (userSelection) { 
    case 1: 
     TextIO.putln("Let's add! "); 
     TextIO.putln(); 
     TextIO.putln("Enter the first number: "); 
     x = TextIO.getlnDouble(); 
    TextIO.putln("Enter the second number: "); 
     y = TextIO.getlnDouble(); 
     break; 

// Je pensais que je pouvais utiliser le 'Si' comme ce

 if (case 1); // I don't know how to refference this correctly 
     answer = x + y; 
     TextIO.putln(x 'plus' y 'equals' answer); 

Merci à l'avance!

Répondre

0

Il me semble que votre instructeur ne veut pas que vous utilisez l'instruction switch pour commencer, mais il suffit d'utiliser la structure de contrôle de flux if:

if(booleanExpression) 
{ 

} 
else if(booleanExpression2) 
{ 

} 
+0

Si vous utilisez une instruction straight if, comment gérez-vous cette exigence: "demander à un utilisateur un nombre indiquant les quatre équations mathématiques de base"? – Chris

+0

Je ne suis pas sûr que demander à l'utilisateur ces questions est directement lié à l'exigence d'utiliser si des déclarations pour résoudre les équations. – Oded

+0

Je faisais de cette façon à hard et je n'ai pas besoin d'utiliser l'instruction switch. Faites juste une liste de choix. Je ne pouvais pas voir la forêt pour tous les arbres. Merci à tous !!! – jjason89

1

Voici le code presudo pour une ré-écriture d'une déclaration CASE:

IF (Case==1) THEN 
    *What to do when Case==1.* 
ELSE IF (Case==2) THEN 
    *What to do when Case==2.* 
ELSE IF (Case==3) THEN 
    *What to do when Case==3.* 
ELSE IF (Case==4) THEN 
    *What to do when Case==4.* 
END IF 

Vous devez coder en Java ce bien. :) Bonne chance avec votre mission.

+0

On dirait que votre premier 'if' a un' '=== réfugié JavaScript – barrowc

+0

@barrowc - Oops ... qui était une faute de frappe. Fixé. Merci. :) –

1

Le switch est utilisé contre une seule variable donnée/expression et les cas sont utilisés sur quelle valeur il est mais parce que vous ne testez pas une seule variable/expression, ceci n'est pas applicable, vous devriez utiliser la structure if-elseif-else à la place.

1

Les instructions case-switch constituent une alternative structurelle à l'utilisation des instructions if..else imbriquées dans lesquelles vous souhaitez exécuter une logique differnet pour différentes valeurs d'un type de données numérique ou énumératif. Il ne se combine pas avec if..else et les 2 sont des approches différentes pour résoudre des problèmes conditionnels. Lequel est le mieux adapté dépend de la condition que vous évaluez.

Si je comprends bien votre code correctement, alors je pense que vous cherchez quelque chose comme ceci:

switch (userSelection) { 
case 1: 
    TextIO.putln("Let's add! "); 
    TextIO.putln(); 
    TextIO.putln("Enter the first number: "); 
    x = TextIO.getlnDouble(); 
    TextIO.putln("Enter the second number: "); 
    y = TextIO.getlnDouble(); 
    answer = x + y;  
    TextIO.putln(x + " plus " + y + " equals " + answer); 
    break; 
case 2: 
    ... //oh, I don't know. but I would guess: let's subtract! 
    break; 
case 3: 
    ... //let's multiply! 
    break; 
case 4: 
    ... //let's divide! 
    break; 

}

+0

Voici comment j'ai commencé, mais parce qu'elle voulait une sélection de lettre pour choisir l'opération et si/sinon pour les opérations, je pensais que j'utiliserais une déclaration de cas pour obtenir la contribution de l'utilisateur. 1 pour ajouter, 2 pour soustraire et ainsi de suite. Ensuite, si je pouvais utiliser IF 'case = 1', alors faites l'opération mathématique suivante. – jjason89

1

vous passez sur SélectionUtilisateur si SélectionUtilisateur a déjà la valeur vous avez besoin; vous pouvez référencer la valeur en faisant référence à la variable de SélectionUtilisateur:

if (userSelection == 1) { 
    // add 
} else if (userSelection == 2) { 
    // subtract 
} else if (userSelection == 3) { 
    // multiply 
} else if (userSelection == 2) { 
    // divide 
} 
Questions connexes