Как устранить ошибку недостижимого оператора в моем коде - PullRequest
0 голосов
/ 03 марта 2020

Я учу java впервые и создаю программу, которая выводит, сколько денег на моей дебетовой карте, а также сколько я должен. Вот мой код:

public class Main {
    public static void main(String[] args) {
        double bankAccountNumbers = Main.calculateMoneyExpenditures(6350.46, 2700.00, 115.75);
        System.out.printf("Money left in debit card: $%,.2f%n", bankAccountNumbers);
        System.out.printf("Money left before going into debt: $%,.2f%n", bankAccountNumbers);
    }
    public static double calculateMoneyExpenditures(double debitCardMoney, double creditLimit, double amountOfDebt) {
        double moneyInCard = (debitCardMoney);
        return moneyInCard;
        double amountToSpend = (creditLimit);
        return amountToSpend;
        double amountOwed = (creditLimit - amountOfDebt);
        return amountOwed;
    }
}

Однако, когда я компилирую этот код в Repl.it, я получаю следующую ошибку:

enter code here Main.java:11: error: unreachable statement
             double amountToSpend = (creditLimit);
               ^
            Main.java:13: error: unreachable statement
           double amountOwed = (creditLimit - amountOfDebt);
            ^
         2 errors

Может кто-нибудь сказать мне, как я могу решить эта ошибка для этого кода и будущих проектов, где я должен следовать этим правилам области видимости?

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

В методе из java вы не можете получить доступ к любому коду после возврата. Это ваш код:

public static double calculateMoneyExpenditures(double debitCardMoney, double creditLimit, double amountOfDebt) {
        double moneyInCard = (debitCardMoney);
        return moneyInCard;
        double amountToSpend = (creditLimit);
        return amountToSpend;
        double amountOwed = (creditLimit - amountOfDebt);
        return amountOwed;
    }

Это должно быть:

public static double calculateMoneyExpenditures(double creditLimit, double amountOfDebt) {
        return creditLimit - amountOfDebt;
    }

После возврата moneyInCard метод завершен и ничего после него не запустится. Судя по вашим комментариям, я думаю, что вы хотите вернуть это creditLimit - amountOfDebt. И.Брок ответил правильно, но вот почему.

0 голосов
/ 03 марта 2020
public class Main {
    public static void main(String[] args) {
        double debitCardMoney = 6350.46
        double bankAccountNumbers = Main.calculateMoneyExpenditures(2700.00, 115.75);
        System.out.printf("Money left in debit card: $%,.2f%n", debitCardMoney);
        System.out.printf("Money left before going into debt: $%,.2f%n", bankAccountNumbers);
    }
    public static double calculateMoneyExpenditures(double creditLimit, double amountOfDebt) {
        return creditLimit - amountOfDebt;
    }
}

На основании вашего комментария я предполагаю, что это то, что вы хотите сделать. Однако названия не имеют большого смысла. Попробуйте описать, что именно.

Следующим шагом будет создание чего-то вроде объектов учетной записи вместо использования stati c functions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...