Sortie souhaitée: Strong> Bonjour, j'essaie de créer un programme qui ajoute, soustraction, multiplication et division et boucles jusqu'à ce que vous appuyiez sur «E» pour quitter la boucle. Ainsi, Je veux que cela ressemble à quelque chose comme ceci: p> Voici mon code strong > p> import java.util.Scanner;
public class Calculator_Loop {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
char selection;
char choice = 'E';
double num_1;
double num_2;
double result;
System.out.println("A. Addition\nB. Subtraction\nC. Multiplication\nD. Division \n\nE. Exit");
//System.out.println("\nPlease enter your selection, enter E to end:");
//selection = input.next().charAt(0);
//choice = Character.toUpperCase(selection);
while(choice != 'E')
System.out.println("\nPlease enter your selection, enter E to end:");
selection = input.next().charAt(0);
choice = Character.toUpperCase(selection);
if(choice == 'A') {
System.out.println("Enter your first number:");
num_1 = input.nextDouble();
System.out.println("Enter your second number:");
num_2 = input.nextDouble();
result = num_1 + num_2;
System.out.println(result);
}
if(choice == 'B'){
System.out.println("Enter your first number:");
num_1 = input.nextDouble();
System.out.println("Enter your second number:");
num_2 = input.nextDouble();
result = num_1 - num_2;
System.out.println(result);
}
if(choice == 'C'){
System.out.println("Enter your first number:");
num_1 = input.nextDouble();
System.out.println("Enter your second number:");
num_2 = input.nextDouble();
result = num_1 * num_2;
System.out.println(result);
}
if(choice == 'D'){
System.out.println("Enter your first number:");
num_1 = input.nextDouble();
System.out.println("Enter your second number:");
num_2 = input.nextDouble();
result = num_1 / num_2;
System.out.println(result);
}
System.out.println("Thank you, have a nice day!");
}
}
4 Réponses :
Bienvenue à. Problème est (aussi loin que possible) que vous n'avez rien / seulement la ligne d'impression dans votre boucle tandis que lorsque la boucle tandis que xxx pré>
Java permet lorsque des boucles sans crochets, mais à une ligne maximale (et je Je vous recommande de les faire une seule ligne, mais qui est débattable), dès que vous avez besoin de plusieurs lignes, vous avez besoin de supports et devriez avoir l'indentation. P> P>
Vous devez entourer votre actuellement, votre Note latérale: envisagez d'utiliser un < code> commutateur code> instruction pour gérer les différentes valeurs de cas pour le choix. p> p> en boucle code> avec des supports pour le faire fonctionner comme vous le souhaitez:
pendant code > La boucle va tourner pour toujours (je pense), car la valeur de la graine de
choisit code> est définie sur
E code>. p>
Votre classe a deux problèmes.
afin de vous assurer que la boucle est entrée au moins une fois que vous avez besoin d'une correspondance. une construction de la construction au lieu de votre startcondition. P>
Alors j'ai changé votre temps en boucle dans un traitement. Par là, j'ai ajouté la bouclée manquante. P>
J'ai aussi changé votre sie à un commutateur comme un appelle de choix pour cela. P>
et j'ai déplacé la question dans la boucle, alors l'utilisateur obtient donc l'utilisateur les informations de chaque itération. p>
Au lieu d'utiliser les conditions de si, veuillez utiliser la boucle tandis que la boucle et le commutateur de commutation. Si la valeur d'entrée est autre que la valeur A, B, C ou D, quittez le code.
Le code ne prend que le premier caractère de votre entrée et entre dans un boîtier de commutation, où il comparera l'entrée avec les conditions requises. p>
pendant (choix! = 'E') code> manquant un
{ code>?
"Chaîne de caractère = 'E';" En combinaison avec "alors que (choix! = 'E')" ne participera jamais à la boucle et les boucles sont manquantes après le moment.
Je viens d'ajouter les bretelles frisées, mais maintenant, le programme ferme toujours tout de suite, affichant mon message de sortie. Que dois-je définir ma variable de choix? J'ai essayé 0, mais alors ça va sur une boucle folle pour toujours