【发布时间】:2015-09-09 07:04:59
【问题描述】:
我写了下面的方法,但它不能正常工作。
即使 pin 不正确,这个程序也会执行 Main 类中的 next 方法。
主要思想是当您的引脚正确时,方法将完成并且程序转到下一个方法。如果 PIN 不正确,您将有 3 次。如果所有的努力都错了,那么程序就会失败。因此,您的卡将被冻结。请给我一个平静的建议。
public boolean authenticity(short pin) {
if (pin == 1234) {
System.out.println("PIN is correct");
System.out.println("Card is active for operation!");
return true;
} else {
pin = sc.nextShort();
for (int i = 1; i >= 3; i++) {
System.out.println("PIN isn't correct! You have " +i +"effort(s)");
return authenticity(pin); // recursion
}
}
return false;
}
*在Main类中,方法根据命令执行: 真实性(sc.nextShort());
【问题讨论】:
-
你能说明你在哪里声明
sc吗? -
for (int i = 3; i <0; i--)你的循环应该有i > 0。 -
我觉得这个问题的题目应该改一下。它没有太多关于布尔方法的内容,而是递归和循环的诚实错误。
-
在我的例子中,我解释了 "sc" @private final static Scanner sc = new Scanner(System.in);
-
我也做了一些更正,因为我弄错了,我使用的是旧版本的程序。我的道歉! @ for (int i = 1; i >= 3; i++)
标签: java for-loop recursion methods