Ребят проблема с кодом java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner( System.in );
System.out.print("Введите первое число");
double num1 = scan.nextDouble();
System.out.print("Введите второе число");
double num2 = scan.nextDouble();
double res1 = num1 + num2;
double res2 = num1 - num2;
double res3 = num1 * num2;
double res4 = num1 / num2;
System.out.print("выберите действие напишите res1 для сложения напишите res2 для вычитания напишите res3 для умножения напишите res4 для деления");
double resa = scan.nextDouble();
if ( resa == res1) {
System.out.println("Результат:" + res1);
}
if ( resa == res2) {
System.out.println("Результат:" + res2);
}
if (resa == res3) {
System.out.println("Результат:" + res3);
}
if ( resa == res4) {
System.out.println("Результат:" + res4);
}
} }
оно выдает ошибку при результате
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.nextDouble(Scanner.java:2564)
at Main.main(Main.java:14)
Process finished with exit code 1
пж обьясните для чайника что не так после этого если в коде нужна еще какая то команда расскажите подробнее что она делает я новичок по джаве
ты не рассказываешь как ты числа вводишь... сразу оба числа или по одному. и если сразу оба, то как ты их разделяешь...
(глядя на твой код)
ты до выбора действия "на всякий случай" уже просчитываешь все возможные варианты?
прикинь все бы программы так делали... сидишь ждёшь пока она всё просчитает и потом только спросит тебя чё нада делать...
и ты даже не проверяешь случай когда num2 равно нулю?
Вводите дробные числа через точку, а не запятую
На
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double num1 = scan.nextDouble(), num2 = scan.nextDouble();
double result = switch (scan.next()) {
case "+" -> num1 + num2;
case "-" -> num1 - num2;
case "*" -> num1 * num2;
case "/" -> num1 / num2;
case "^" -> Math.pow(num1, num2);
case "%" -> num1 % num2;
case "sqrt" -> Math.sqrt(num1);
default -> Double.NaN;
};
System.out.println(Double.isNaN(result) ? "Неверный выбор." : "Результат: " + result);
}
}