Une calculatrice en Java, ça vous va ?


Souvenez vous de ceci « Une calculatrice en Java, ça vous va ? » ? J’avais revisité un code que j’avais écrit quand j’étais un gros débutant. Aujourd’hui, je vous propose un code beaucoup plus balèze et plus sophistiqué que les codes précédents🙂 En effet, vous pourrez ici faire des calculs (simples hein ? n’espérez pas calculer le khi deux avec )! Enjoy les amis.
P.S : Code vérifié avec des tests unitaires (je reviendrais là-dessus plus tard)


 

import java.util.Scanner;

public class Calculator {
	public static String execute(String s) {
		if(s.equals("")) return "Erreur !";
		if(!s.contains("+")&& !s.contains("-") && !s.contains("*") && !s.contains("/")) return s;
		s = supprEspaces(s);
		String resultat = new String();
		int resultatInt=0;
		char operateur = getOperateur(s);
		String operande1, operande2;
		int indiceOp=0;
		while(s.charAt(indiceOp) != operateur) indiceOp++;
		operande1 = s.substring(0, indiceOp);
		operande2 = s.substring(indiceOp+1, s.length());
		if(operateur == '+') resultatInt = Integer.parseInt(operande1) + Integer.parseInt(operande2);
		if(operateur == '-') resultatInt = Integer.parseInt(operande1) - Integer.parseInt(operande2);
		if(operateur == '*') resultatInt = Integer.parseInt(operande1) * Integer.parseInt(operande2);
		if(operateur == '/') resultatInt = Integer.parseInt(operande1) / Integer.parseInt(operande2);
		resultat = String.valueOf(resultatInt);
		return resultat;
	}
	
	public static String supprEspaces(String s) {
		String S = new String();
		for(int i=0; i<s.length(); i++) {
			if(s.charAt(i) != ' ') S += s.charAt(i);
		}
		return S;
	}
	
	public static char getOperateur(String s) {
		for(int i=0; i<s.length(); i++) {
			if(s.charAt(i) == '/') return '/';
			if(s.charAt(i) == '*') return '*';
			if(s.charAt(i) == '+') return '+';
			if(s.charAt(i) == '-') return '-';
		}
		return 'e';
	}
	
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String reponse = new String();
		do {
			System.out.print("Entrez votre calcul: ");
			String calcul = scan.nextLine();
			System.out.println(calcul + " = " + execute(calcul));
			System.out.print("Voulez-vous effectuer un nouveau calcul? (o/n) ");
			reponse = scan.nextLine();
		} while(!reponse.equals("n"));
	}

}

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s