Do...while 在输入验证中不起作用
Do...while is not working in input verification
所以我正在尝试对 java 中的程序进行输入验证,并且我正在尝试在此 setter:
中进行验证
public void setClientName(String clientName) {
boolean valid;
do{
valid = false;
try{
if(clientName.matches("[a-zA-Z]+")){
this.clientName = clientName;
}else{
throw new IllegalArgumentException("Invalid client name");
}
}catch(Exception e){
System.out.println("Invalid name");
valid = true;
}
}while(!valid);
}
但是当我调用它并输入错误的名称时,do...while 不起作用,程序继续运行
这里是我的名字
public void openAccount(int i){
nCartao = 2021120040 + i;
System.out.println("Account Number : " + (nCartao));
System.out.println("Client Name :");
setClientName(sc.next()); // I CALL IT HERE
System.out.println("Client Age : ");
age = sc.nextInt();
System.out.println("Balance :");
balance = sc.nextInt();
}
我做错了什么?
也许那是因为在你的捕获中你说 valid
是 true
而它应该是 false
来重复这个块。
所以我正在尝试对 java 中的程序进行输入验证,并且我正在尝试在此 setter:
中进行验证 public void setClientName(String clientName) {
boolean valid;
do{
valid = false;
try{
if(clientName.matches("[a-zA-Z]+")){
this.clientName = clientName;
}else{
throw new IllegalArgumentException("Invalid client name");
}
}catch(Exception e){
System.out.println("Invalid name");
valid = true;
}
}while(!valid);
}
但是当我调用它并输入错误的名称时,do...while 不起作用,程序继续运行
这里是我的名字
public void openAccount(int i){
nCartao = 2021120040 + i;
System.out.println("Account Number : " + (nCartao));
System.out.println("Client Name :");
setClientName(sc.next()); // I CALL IT HERE
System.out.println("Client Age : ");
age = sc.nextInt();
System.out.println("Balance :");
balance = sc.nextInt();
}
我做错了什么?
也许那是因为在你的捕获中你说 valid
是 true
而它应该是 false
来重复这个块。