Инициализируйте userChoice. Если я установлю его на ноль, моя программа будет скомпилирована - PullRequest
0 голосов
/ 07 ноября 2018

раньше, когда я ставлю if(userChoice == 0), он прекрасно компилируется без ошибок. но это настраивает выбор пользователя на постоянный депозит, независимо от того, нажимают ли они кнопку вывода. Мне нужно выяснить, как инициализировать userChoice в качестве ввода с клавиатуры. Я пробовал userChoice = ();, что тоже не работает.

это единственный оператор if, который работает ... но затем мой следующий оператор if if(userChoice ==1) он все еще собирается внести .??

int userChoice;

String[] menuItems = {"Deposit", "Withdrawal", "Print Account Information", "Exit"};
int selection;
selection = JOptionPane.showOptionDialog(null, 
      "Please choose an item",
      bankAccount,
      JOptionPane.YES_NO_CANCEL_OPTION,
      JOptionPane.QUESTION_MESSAGE, 
      null,
      menuItems,
      "Deposit");
System.out.println(selection);

if (userChoice == 0) {
    depositStr = JOptionPane.showInputDialog("Enter your deposit amount: $");
    deposit = Double.parseDouble(depositStr);
    initialBalance = initialBalance + deposit;
    selection = JOptionPane.showOptionDialog(null, "Please choose an item",
      bankAccount,
      JOptionPane.YES_NO_CANCEL_OPTION,
      JOptionPane.QUESTION_MESSAGE, 
      null,
      menuItems,
      "Deposit");
  System.out.println(selection);
}

и тогда у меня есть еще операторы if, как и другие, если (userChoice == 1) (1 так называемый вывод) ... никогда не случается, что человек нажал 1

У меня есть еще заявления if else. Это просто трудно держать их на 4 места здесь. Моя единственная проблема с компиляцией заключается в том, что там написано, что var userChoice не инициализирован.

1 Ответ

0 голосов
/ 07 ноября 2018

Вы, кажется, путаете userChoice с selection, что было бы точно таким же в этом контексте. Он всегда вносится, потому что вы никогда не устанавливаете значение userChoice, поэтому, если вы инициализируете как 0, оно всегда будет 0 ...

JOptionPane.showOptionDialog будет возвращать индекс элемента, который был выбран .

Следовательно, вы хотите эту структуру и удалите userChoice

int selection = JOptionPane.showOptionDialog(... , menuItems, ...);

System.out.printf("You selected %s at position %d%n", menuItems[selection], selection);

if (selection == 0) {

} else if (selection == 1) {

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