我正在写一个简单的银行应用程序。在我的程序中,我使用了while循环。如果用户输入错误的输入,它将重新提示再次输入。
现在问题是我在循环后无法编写任何system.out.print
语句。它始终显示错误(说: 无法访问的声明 ),最终该行无法打印出来。
我该如何修复?
[我需要使用system.out.print
的原因,因为我想要打印用户输入的所有信息。]
我正在进行的计划:
package bankapplication;
import java.util.Scanner;
public class BankApplication {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("WELCOME TO OUR BANK!\n\nPlease give all the inofrmation correctly.");
System.out.println("Enter your name: ");
String name = input.nextLine();
System.out.println("");
System.out.println("Enter your SSN: ");
String ssn = input.next();
System.out.println("");
System.out.println("Enter your Address: ");
String address = input.next();
System.out.println("");
System.out.println("Enter your telephone nr: ");
String teleNum = input.next();
System.out.println("");
while (true) {
System.out.println("Choose an account number for you (Between 5 and 10 positive numbers): ");
int accNum = input.nextInt();
System.out.println("");
if (accNum < 0 && accNum > 10 && accNum < 6) {
System.out.println("Invalid choise!");
} else {
System.exit(0);
}
}
System.out.println("Congratulation! Your new account has been created!");
System.out.println("The following is your account info:\n");
System.out.println("name: " + name + "SSN: " + ssn + "Address: " + address + "Tele. Num: " + teleNum + "Acc num: " + accNum);
}
}
答案 0 :(得分:3)
当您调用System.exit
时,整个程序退出并终止该过程。相反,您可以将else
语句替换为:
else { break; }
这将打破当前循环,其余语句将被打印。关键字break
只是打破了循环。
答案 1 :(得分:1)
你有一个while (true)
循环 - 一个无限的循环,除非循环中的某些内容突然出现。唯一突破循环的行是System.exit(0)
,它将完全结束你的程序。因此,在循环之后无法访问代码。
如果您打算在else
子句中退出循环,请使用break
语句而不是退出程序。
但请注意,if
条件永远不会成立。
if (accNum < 0 && accNum > 10 && accNum < 6) {
accNum
永远不会小于零且大于10。
你需要弄清楚你真正想要检查的条件。
答案 2 :(得分:1)
条件
(accNum < 0 && accNum > 10 && accNum < 6)
永远无法实现,数字不可能是负数且同时> 10; System.exit(0)将始终在第一个循环中被调用。
当你调用System.exit(0)时,你退出程序而不是循环,因此你永远不会达到你所说的语句。
你应该使用
break;
或者如果你想要更多声望,请在while(条件)中设置正确的条件...尽量不要习惯使用break;