Ниже приведен код Java. Если пользователь вводит номер, который не равен 1
, метод getInput()
будет вызываться снова.Счетчик Java неправильно работает
public void getInput(){
int i=0;
while(i<=4){
result[i] = Integer.parseInt(JOptionPane.showInputDialog("Enter Result (1 = pass, 2 = fail)"));
int res = result[i];
if(res!=1){
JOptionPane.showMessageDialog(null,"Wrong input, please try again!");
System.out.println("Wrong Input:" + res);
getInput();
}
System.out.println("count:"+i);
i=i+1;
}
}
Ниже приведены результаты производства по коду
- Количество: 0 < - начинает отсчет от 0
- Количество: 1
- Неправильный вход: 2 < - Введите неправильный ввод и вызов метод
getInput()
еще раз. - Количество: 0 < - таймер начинает отсчет от 0
- Количество: 1
- Количество: 2
- Количество: 3
- Количество: 4
- Количество: 2 < - снова начинается от 2
- Количество: 3
- Количество: 4
Проблема в том, что счетчик работает неправильно. Может кто-то, пожалуйста, помогите мне решить эту проблему и почему это происходит?
Количество: 0 Неправильный вход: Количество: 0 Количество: 1 Количество: 2 Количество: 3 количество: 4 кол-во: 1 кол-во: 2 кол-во: 3 кол-во: 4 - это результаты, которые я получил при реализации вышеуказанного кода. Цикл while работает дважды. –
Вы удалили вызов 'getInput()' в if-условии? Похоже, вы все еще возвращаетесь в свой метод. – Pyranja
Спасибо Prynja !! устранение рекурсивного вызова устраняет проблему. :) –