我有以下代码
Public class MyClasses implements ForceValidation
{
Public boolean validateValues(int a){
If (a==0){
System.out.println("it is zero");
return false;
}
else
return true;
}
public static void main(String[] args){
Scanner sc=new scanner(System.in);
System.out.println("enter a number");
int a=sc.nextInt();
MyClasses m=new MyClasses();
boolean b=true;
while (b){
b=m.validateValues(a);
if(b){
System.out.println("valid value");
break;
}
}
}
}
虽然我得到了正确的输出,但在这里我想循环直到输入有效值
请建议解决方案
答案 0 :(得分:1)
b应该是假的,直到给出了有效答案:
boolean b=false;
while (!b){
b=m.validateValues(a);
if(b){
System.out.println("valid value");
break;
}
}
与以下内容相同:
boolean b=false;
while (!b){
b=m.validateValues(a);
}
System.out.println("valid value");
答案 1 :(得分:1)
但是我想循环直到输入有效值
因为您希望在有效之前持续接收值。这是一个明显的提示,您需要在 循环中包含输入 的提示:
System.out.println("enter a number");
int a=sc.nextInt();
while(!validateValue(a)){ //so long value is invalid, repeat.
System.out.println("enter a number");
a=sc.nextInt(); //prompt for input
}
System.out.println("valid value");
但如果我是你,我将使用do-while
循环,因此我们 不 必须 提示输入 两次 。
do{
System.out.println("enter a number");
a=sc.nextInt();
}while(!validateValue(a));
System.out.println("valid value");