Программа не видит указываемую операцию! в чем ошибка?
import java.util.Scanner;
public class Max_Min_Arrays {
static Scanner scanner=new Scanner(System.in);
public static void main(String[] args) {
int num1=getInt();
int num2=getInt();
char operation=getOperation();
int result=calc(num1,num2,operation);
System.out.println("Результат вычислений:"+ result);
}
public static int getInt(){
System.out.println("Введите целое число:");
int num;
if(scanner.hasNextInt()){
num=scanner.nextInt();
}else{
System.out.println("Вы допустили ошибку, попробуйте еще раз!");
scanner.next();
num=getInt();
}
return num;
}
public static char getOperation(){
System.out.println("Введите операцию:");
char operation;
if(scanner.hasNext()){
operation=scanner.next().charAt(0);
}else{
System.out.println("Вы допустили ошибку, повторите ввод!");
scanner.next();
operation=getOperation();
}
return getOperation();
}
public static int calc(int num1,int num2,char operation){
int result;
switch (operation){
case '+':
result=num1+num2;
break;
case '-':
result=num1-num2;
break;
case '*':
result=num1*num2;
break;
case '/':
result=num1/num2;
break;
default:
System.out.println("Вы допустиои ошибку, повторите еще раз!");
result=calc(num1,num2,getOperation());
}
return result;
}
}
TOR
1 уровень
Программа калькулятор! Не видит операцию
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
8 марта 2021, 19:15
поменяй на
иначе у тебя бесконечная рекурсия получается, метод вызывает сам себя до бесконечности
0
TOR
8 марта 2021, 19:22
Да!
Огонь. Большое спасибо!😀
0
TOR
8 марта 2021, 19:23
и если несложно, то в 2 словах о методе charAt(0)- как он работает у меня! я по гайду делал прогу, не понял момент
0
Justinian Judge в Mega City One Master
8 марта 2021, 19:41
на здоровье,
почитай ссылку
http://proglang.su/java/strings-charat
в строке
сначала отработает scanner.next(), он вернет некую строку, допустим это
или
потом метод charAt(0) возьмет первый символ этой строки и присвоит его переменной operation (нумерация символов начинается с нуля)
поэтому программу будет корректно работать даже с вводом типа:
поскольку она все-равно берет только первый символ.
0
TOR
8 марта 2021, 19:50
спасибо, понял!
0