В вашем коде есть несколько проблем, которые могут привести к ошибкам, включая использование переменной RESULTAT, которую не следует использовать, а также отсутствие правильного завершения блока switch. Кроме того, есть возможность оптимизировать и улучшить читаемость кода. Вот исправленная версия:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Напиши первое число:");
int a = scanner.nextInt();
System.out.println("Напиши второе число:");
int b = scanner.nextInt();
System.out.println("Выберите оператор (+, -, *, /):");
char operator = scanner.next().charAt(0);
int result;
switch (operator) {
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
case '*':
result = a * b;
break;
case '/':
if (b == 0) {
System.out.println("Ошибка: деление на ноль невозможно");
scanner.close();
return;
}
result = a / b;
break;
default:
System.out.println("Недопустимый оператор. Пожалуйста, используйте +, -, *, /");
scanner.close();
return;
}
System.out.println("Результат: " + result);
scanner.close();
}
}
Изменения и оптимизации:
- Переменные a и b: Используйте int вместо byte, чтобы избежать проблемы с переполнением при арифметических операциях.
- Сообщения пользователю: Можно улучшить читаемость кода, меняя текст на русский язык.
- Исправление вывода: Замените RESULTAT на result, чтобы правильно вывести в конце расчёт.
- Улучшение кода: Код стал более компактным и удобочитаемым, с адекватными сообщениями об ошибках.
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
// Используем try-with-resources для корректного закрытия Scanner
try (Scanner scanner = new Scanner(System.in)) {
System.out.print("Введите число: ");
int firstInput = scanner.nextInt();
System.out.print("Введите число: ");
int secondInput = scanner.nextInt();
// Если числа равны, выводим сообщение "Норм"
if (firstInput == secondInput) {
System.out.println("Норм");
} else {
System.out.println("Запустим калькулятор!");
System.out.print("Введите 1-е число: ");
int num1 = scanner.nextInt();
System.out.print("Введите 2-е число: ");
int num2 = scanner.nextInt();
System.out.print("Введите операцию (+, -, *, /): ");
char operator = scanner.next().charAt(0);
int result; // переменная для результата вычисления
switch (operator) {
case '+':
result = num1 + num2;
System.out.println("Результат: " + result);
break;
case '-':
result = num1 - num2;
System.out.println("Результат: " + result);
break;
case '*':
result = num1 * num2;
System.out.println("Результат: " + result);
break;
case '/':
if (num2 == 0) {
System.out.println("Ошибка: деление на ноль невозможно");
} else {
result = num1 / num2;
System.out.println("Результат: " + result);
}
break;
default:
System.out.println("Ошибка: неизвестная операция");
break;
}
}
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner boroda = new Scanner( System.in );
System.out.println("Napishi 4islo");
byte a = boroda.nextByte();
System.out.println("Napishi 4islo");
byte b = boroda.nextByte();
boolean dolboeb = false;
if(dolboeb) {
System.out.println("Norm");
} else if (a != b) {
System.out.println("Reshai Calculator, pishin 4islo");
int c = boroda.nextInt();
System.out.println("pishin 2 4islo");
int d = boroda.nextInt();
System.out.println("Znak" + "+, -, *. /");
char oper = boroda.next ().charAt(0);
int resultat;
switch (oper) {
case '+': resultat = c + d; break;
case '-': resultat = c - d; break;
case '*': resultat = c * d; break;
case '/':
if (d == 0) {
System.out.println("Ошибка: деление на ноль невозможно");
return;
}
resultat = c / d;break;
default:
System.out.println(RESULTAT + "Hello World!");
boroda.close();