@sfvdgnf

Почему у меня не выводится результат?

Здравствуйте, начал недавно изучать java и решил написать простой калькулятор, который просит оператор и 2 операнда, но после сообщения "Введите второе число", когда я ввожу 2 число, то он не выводит результат.
import java.util.Scanner;

public class calculator {
    public static void main(String[] args){
        //Написать калькулятор, который просит ввести оператор и 2 операнда.
        long first_operand;
        long second_operand;
        long result;
        String operator;

        System.out.println("Выберите действие (+, -, *, /)");
        Scanner operators = new Scanner(System.in);
        operator = operators.nextLine();

        System.out.println("Введите первое число");
        Scanner first_operands = new Scanner(System.in);
        first_operand = first_operands.nextLong();

        System.out.println("Введите второе число");
        Scanner second_operands = new Scanner(System.in);
        second_operand = second_operands.nextLong();

        if (operator == "+"){
            result = first_operand + second_operand;
            System.out.println(first_operand + '+' + second_operand + " = " + result);
        }else if(operator == "-" ) {
            result = first_operand - second_operand;
            System.out.println(first_operand + " - " + second_operand + " = " + result);
        }else if(operator == "*"){
            result = first_operand * second_operand;
            System.out.println(first_operand + " * " + second_operand + " = " + result);
        }else if(operator == "/"){
            try{    
                result = first_operand / second_operand;
                System.out.println(first_operand + " / " + second_operand + " = " + result);
            }catch(Exception e){
                System.out.println("Делить на ноль нельзя");
            }
        operators.close();
        first_operands.close();
        second_operands.close();
        }
    }
}
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
1. Почитайте Naming Conventions. Переменные называются кэмэл-кейсом с маленькой буквы. Не first_operand, а firstOperand

2. Переменные лучше объявлять в месте их инициализации.
Не правильно: operator = operators.nextLine();
правильно: String operator = operators.nextLine();
java 11+: var operator = operators.nextLine();

3. Scanner достаточно объявить один раз, вызывая по необходимости его методы. На каждый ввод новый сканнер не нужен.

4. Строки в java сравниваются методом .equals
Не правильно: operator == "+"
Правильно: "+".eqauls(operator )
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы