SubRay :
Estoy aprendiendo a código y es bastante difícil para mí, no pude encontrar la respuesta en Internet, así que di vuelta aquí, quería hacer una calculadora para Java, utilizo un escáner, pero no puedo hacerlo y yo no entiendo lo que estoy haciendo mal .. voy a feliz si no me río y me ayuda. Gracias..
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int result = 0;
Scanner num1 = new Scanner(System.in);
System.out.println("Hola<Soy Calculadora> Etre primer numero : ");
System.out.println("Tu primer numero es : " + num1);
System.out.println("Entre Segundo numero aqui : " );
Scanner num2 = new Scanner(System.in);
System.out.println("Tu segundo numero es : " + num2);
System.out.println(" Ahora elige que quieres hacer con los numeros " + num1 + " y " + num2 + " (para eligir solo tienes que introducir un simvolo p. ej. '+' )");
Scanner act = new Scanner(System.in);
int userInputnum1 = num1.nextInt();
int userInputnum2 = num2.nextInt();
String userInputact = act.nextLine();
if(userInputact.equals("+")){
result = userInputnum1 + userInputnum2;
}else if(userInputact.equals("-")){
result = userInputnum1 + userInputnum2;
}else if(userInputact.equals("/")){
result = userInputnum1/userInputnum2;
}
System.out.println("resultado :" + result);
}
}
me da un error:
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at com.company.Main.main(Main.java:18)
Por favor, dime cómo resolver ..
Piotr:
sólo se necesita un escáner:
Scanner scanner = new Scanner(System.in);
int a,b,r=0;
char c;
a = scanner.nextInt();
b = scanner.nextInt();
c = scanner.next().charAt(0);
switch (c) {
case '+':
r = a + b;
break;
/// more cases
default: {
System.out.println("default");
}
}
System.out.println(r);
para evitar errores que puedes usar algo como:
if (scanner.hasNextInt()) {
a = scanner.nextInt();
}