Java-программа «Проверка аккаунта» - PullRequest
0 голосов
/ 07 декабря 2018

Привет еще раз StackOverflow.Я вернулся с новой проблемой в моем коде.Да, это для школы (средней школы).Моя проблема в этом.Пока это мой код.

import java.util.Scanner;

class Main {
  public static void main(String[] args) {

    Scanner moneyTime = new Scanner(System.in);

    System.out.println("Hello world!");

    int dep;
    int with;
    int balance = 1200;
    int choice;

    while(1 == 1)
    {
      System.out.println(" ");
      System.out.printf("%s%d", "Current Balance: $", balance);
      System.out.println(" ");
      System.out.println("What would you like to do:");
      System.out.println("Type 1 for [DEPOSIT]");
      System.out.println("Type 2 for [WITHDRAWAL]");
      System.out.println("Type 3 for [EXIT/FINAL]");
      choice = moneyTime.nextInt();

      if(choice == 1)
      {
        System.out.print("Amount: ");
        dep = moneyTime.nextInt();
        deposit(balance, dep);
        System.out.println("Testing: " + balance);
      }
      else if(choice == 2)
      {
        System.out.print("Amount: ");
        with = moneyTime.nextInt();
        withdrawl(balance, with);
        System.out.println("Testing2: " + balance);
      }
      else
      {
        exitORfinal();
      }
    }

    static int deposit(int balance, int dep)
    {
    int balance1 = balance + dep;
    return balance1;
    }

    static int withdrawal(int balance, int with)
    {
    int balance1 = balance - with;
    return balance1;
    }

    static int exitORfinal
    {
    System.out.println("Testing Text to make sure thiworks");
    }

  }
}

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

exit status 1
Main.java:46: error: illegal start of expression
    static int deposit(int balance, int dep)
    ^
Main.java:46: error: ';' expected
    static int deposit(int balance, int dep)
                      ^
Main.java:46: error: <identifier> expected
    static int deposit(int balance, int dep)
                                   ^
Main.java:46: error: not a statement
    static int deposit(int balance, int dep)
                                        ^
Main.java:46: error: ';' expected
    static int deposit(int balance, int dep)
                                           ^
Main.java:52: error: illegal start of expression
    static int withdrawal(int balance, int with)
    ^
Main.java:52: error: ';' expected
    static int withdrawal(int balance, int with)
                         ^
Main.java:52: error: <identifier> expected
    static int withdrawal(int balance, int with)
                                      ^
Main.java:52: error: not a statement
    static int withdrawal(int balance, int with)
                                           ^
Main.java:52: error: ';' expected
    static int withdrawal(int balance, int with)
                                               ^
Main.java:58: error: illegal start of expression
    static int exitORfinal
    ^
Main.java:58: error: ';' expected
    static int exitORfinal
                          ^
12 errors
exit status 1
Main.java:46: error: illegal start of expression
    static int deposit(int balance, int dep)
    ^
Main.java:46: error: ';' expected
    static int deposit(int balance, int dep)
                      ^
Main.java:46: error: <identifier> expected
    static int deposit(int balance, int dep)
                                   ^
Main.java:46: error: not a statement
    static int deposit(int balance, int dep)
                                        ^
Main.java:46: error: ';' expected
    static int deposit(int balance, int dep)
                                           ^
Main.java:52: error: illegal start of expression
    static int withdrawal(int balance, int with)
    ^
Main.java:52: error: ';' expected
    static int withdrawal(int balance, int with)
                         ^
Main.java:52: error: <identifier> expected
    static int withdrawal(int balance, int with)
                                      ^
Main.java:52: error: not a statement
    static int withdrawal(int balance, int with)
                                           ^
Main.java:52: error: ';' expected
    static int withdrawal(int balance, int with)
                                               ^
Main.java:58: error: illegal start of expression
    static int exitORfinal
    ^
Main.java:58: error: ';' expected
    static int exitORfinal
                          ^
12 errors

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

Еще раз спасибо за вашу помощь (если я ее получу).

Ответы [ 4 ]

0 голосов
/ 07 декабря 2018

В Java static означает, что это переменная / метод класса, он принадлежит всему классу, но не одному из его определенных объектов.

Это означает, что ключевое слово static может использоваться только в«область видимости класса», т.е. она не имеет никакого смысла внутри методов.

Теперь, если внутри метода есть статическая переменная, тогда эта переменная попадает в область действия метода, а не в область действия класса, и JVM не можетвыделите ему память, потому что метод вызывается с помощью объекта класса, а это во время выполнения, а не во время загрузки класса.Вы можете сделать что-то вроде этого:

    public Class YourClass {
      static int someNumber = 5;

      public static void main(String[] args) {
         System.out.println(someNumber);
      }
    }
0 голосов
/ 07 декабря 2018

Как насчет этого кода:

import java.util.Scanner;

class Main {
    static int deposit(int balance, int dep) {
        return balance + dep;
    }

    static int withdrawl(int balance, int with) {
        return balance - with;
    }

    static void exitORfinal() {
        System.out.println("Testing Text to make sure thiworks");
    }

    public static void main(String[] args) {
        Scanner moneyTime = new Scanner(System.in);
        System.out.println("Hello world!");

        int dep;
        int with;
        int balance = 1200;
        int choice;

        while (true) {
            System.out.println(" ");
            System.out.printf("%s%d", "Current Balance: $", balance);
            System.out.println(" ");
            System.out.println("What would you like to do:");
            System.out.println("Type 1 for [DEPOSIT]");
            System.out.println("Type 2 for [WITHDRAWAL]");
            System.out.println("Type 3 for [EXIT/FINAL]");
            choice = moneyTime.nextInt();

            if (choice == 1) {
                System.out.print("Amount: ");
                dep = moneyTime.nextInt();
                deposit(balance, dep);
                System.out.println("Testing: " + balance);
            } else if (choice == 2) {
                System.out.print("Amount: ");
                with = moneyTime.nextInt();
                withdrawl(balance, with);
                System.out.println("Testing2: " + balance);
            } else {
                exitORfinal();
            }
        }
    }    


}

Я думаю, что лучше использовать эти статические методы перед методом main.

0 голосов
/ 07 декабря 2018

Просто, чтобы заявить о проблеме на простом английском языке: объявление ваших различных методов (exitORfinal, изъятие, депозит) внутри объявление вашего основного метода.В java методы не могут быть определены внутри тела другого метода, вы должны переместить их в тело вашего класса.

Кроме того, могу ли я посоветовать вам использовать эффективную среду IDE (Eclipse, Netbeans или любую подходящую)?редактор с плагинами Java, такими как VSCode или SublimeText)?Это хорошо подчеркнет проблему и даже предложит исправления.

0 голосов
/ 07 декабря 2018

Первый вам нужно переместить все методы, которые вы создали в методе main, из основного метода, Второй вам нужно добавить некоторый параметр в статический метод exitORfinal, например: exitORfinal () {..} Третье вы должны заменить переменную moneyBoi на moneyTime, потому что вы объявили ее как moneyTime. Четвертый Вы должны переименовать метод вывода для вывода.

И ваш код выглядит следующим образом:

import java.util.Scanner;

class Main {
    static int exitORfinal() {
        System.out.println("Testing Text to make sure thiworks");
    }

    public static void main(String[] args) {

        Scanner moneyTime = new Scanner(System.in);

        System.out.println("Hello world!");

        int dep;
        int with;
        int balance = 1200;
        int choice;

        while (1 == 1) {
            System.out.println(" ");
            System.out.printf("%s%d", "Current Balance: $", balance);
            System.out.println(" ");
            System.out.println("What would you like to do:");
            System.out.println("Type 1 for [DEPOSIT]");
            System.out.println("Type 2 for [WITHDRAWAL]");
            System.out.println("Type 3 for [EXIT/FINAL]");
            choice = moneyTime.nextInt();

            if (choice == 1) {
                System.out.print("Amount: ");
                dep = moneyTime.nextInt();
                deposit(balance, dep);
                System.out.println("Testing: " + balance);
            } else if (choice == 2) {
                System.out.print("Amount: ");
                with = moneyTime.nextInt();
                withdrawl(balance, with);
                System.out.println("Testing2: " + balance);
            } else {
                exitORfinal();
            }
        }
    }    

    static int deposit(int balance, int dep) {
        int balance1 = balance + dep;
        return balance1;
    }

    static int withdrawl(int balance, int with) {
        int balance1 = balance - with;
        return balance1;
    }
}
  1. Для исправления сначала :нужно знать, что все методы объявлены в классе, а нет в методе. методы определения
  2. Для исправления секунды : необходимо знать, что любому методу нужен какой-то параметр, даже пустой someMethod () {...} методы определения
  3. Для исправления третьего и четвертого : необходимо знать о присвоении имен созданным вами методам, это должно быть то же имя при вызове его для любого метода.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...