import java.util.Scanner;
public class fullCalculator {
public static void main(String[] args) {
double result = 0; // multiple variable , switch to choose
int retryAfterErrorSign = -1;
int retry = -1;
{
System.out.println("Firt number: ");
Scanner sc = new Scanner(System.in);
double nbre1 = sc.nextDouble();
System.out.println("Second number: ");
double nbre2 = sc.nextDouble();
System.out.println("1 : Addition");
System.out.println("2 : Soustraction");
System.out.println("3 : Multiplication");
System.out.println("4 : Division");
retry = sc.nextInt();//Loop to rechoose number.
int sign = sc.nextInt();
switch (sign) {
case 1:
if (sign == 1)
result = nbre1 + nbre2;
System.out.println("The result is " + result);
break;
case 2:
if (sign == 2)
result = nbre1 - nbre2;
System.out.println("The result is " + result);
break;
case 3:
if (sign == 3)
result = nbre1 * nbre2;
System.out.println("The result is " + result);
break;
case 4:
if (sign == 4)
result = nbre1 / nbre2;
System.out.println("The result is " + result);
break;
default:
if (sign != 1 && sign != 2 && sign != 3 && sign != 4)
System.out.println("Error , number not recognize");
System.out.println("Retry (0/1)");
retryAfterErrorSign = sc.nextInt();//loop to rechoose sign;
}
}
}
}
Bonjour
Debutant en Java j'ai reussi a faire une calculatrice assez basique , j'aimerais faire 2 "do while" loop Une qui vas me permettre de demander à l'utilisateur à la fin s'il veut recommencer tout le programme .
Aussi j'aimerais demander si l'utilisateur veut recommencer la partie ou je demande de choisir le signe s'il tape autre chose que '1 , 2, 3 ou 4'
d’où mes deux variables 'retry' , j'ai essayé plusieurs tentatives de placement de mes loop mais à chaque fois ce n'est pas ce que je veux.
Pour faire simple : Comment bien placer mes 2" Do While Loop" en utilisant mes 2 variables retry?
En fait, faire switch(value){ case 1: ... case 2: ...} revient exactement à faire if(value == 1){...} else if(value ==2){...} donc la tu faisait if( value == 1 ){ if( value == 1 ){ ... }}
Tant qu'à prendre des bonnes pratiques, il manque tous les commentaires et toutes les javadocs, ainsi que le package. Ensuite quand tu récupères quelque chose avec un Scanner fait un hasNextInt() ou hasNextDouble (pour ce cas, voir les autres dans la classe) ça t'évitera d'avoir des erreurs.
Pour faire une boucle qui recommence la saisit, tu es obligé(e) de faire un clavier.nextLine() avant de recommencer, de manière à ne pas reboucler à l'infini.
Enfin voilà le code avec quelques modifications (pour l'indentation, c'est 4 espaces, mais quand je c/c ça en mets 8) :
/*
* FullCalculator.java 26 Feb. 2015 Nom
*/
package test;
import java.util.Scanner;
/**
* Calculatrice en ligne de commande
*
* @author Nom
* @version 1.0
*/
public class FullCalculator {
/**
* Demande à l'utilisateur de saisir deux réels sur la ligne de commande et
* un signe Fait l'opération voulue en fonction du signe
* <ol>
* <li>Addition</li>
* <li>Soustraction</li>
* <li>Multiplication</li>
* <li>Division</li>
* </ol>
*
* @param args inutilisé
*/
public static void main(String[] args) {
double result = 0.0; // Résultat qui sera affiché si calculé
double x, // Opérande gauche
y; // Opérande droit
int choix; // Action choisie dans le menu
boolean ok; // Si la valeur saisit est correcte
// Analyseur du flot d'entrée standard
Scanner clavier = new Scanner(System.in);
// Pour le compilateur
x = 0.0;
y = 0.0;
// Tant que l'on ne choisit pas de quitter
System.out.println("Calculatrice en ligne de commande");
do {
// Affichage du menu
System.out.println("\nMenu : ");
System.out.println("0 : Quitter");
System.out.println("1 : Addition");
System.out.println("2 : Soustraction");
System.out.println("3 : Multiplication");
System.out.println("4 : Division");
// Choix de l'action
System.out.println("Saisir le choix : ");
do {
System.out.print("> ");
choix = clavier.hasNextInt() ? clavier.nextInt() : -1;
clavier.nextLine();
} while (choix < 0 || 4 < choix);
// On demande le premier nombre tant qu'il est incorrect
System.out.println("Saisir le premier nombre : ");
do {
System.out.print("> ");
ok = clavier.hasNextDouble();
if (ok) {
x = clavier.nextDouble();
}
clavier.nextLine(); // On vide le tampon
} while (!ok);
// On demande le deuxième nombre tant qu'il est incorrect
System.out.println("Saisir le deuxième nombre : ");
do {
System.out.print("> ");
ok = clavier.hasNextDouble();
if (ok) {
y = clavier.nextDouble();
}
clavier.nextLine();
} while (!ok);
// On traite l'action au cas par cas
switch (choix) {
case 1:
result = x + y;
break;
case 2:
result = x - y;
break;
case 3:
result = x * y;
break;
case 4:
result = x / y;
break;
default:
System.out.print("Au revoir");
}
// Affichage du résultat
if (choix > 0) {
System.out.println("Resultat : " + result);
}
} while (choix != 0);
}
}
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.