我需要帮助,这部分代码,我是相当新的编码,所以我不是很好,下面是问题,要求用户输入一个双(数字),如果输入的值不是一个双,它继续问他们,直到他们进入一个双。一旦他们进入一个双重,它检查双输入是否在范围内(1-25之间)。它将继续提示,直到age1在这个范围内。
Scanner input = new Scanner(System.in);
while(!input.hasNextDouble())
{
input.nextLine();
System.out.print("Input is not a number ReEnter:");
}
double age1 = input.nextDouble();
while (age1 < 1 || age1 > 25)
{
System.out.print( "Enter the Age between 1-25 Only!");
age1 = input.nextDouble();
}发布于 2020-10-10 01:37:06
当您需要检查范围时,请使用&&,因为我们需要在这些范围之间使用
另外,你的条件太弱了,while (age1 < 1 || age1 > 25),应该是
while (age1 >= 1 && age1 <= 25)
使用wrapper类将字符串转换为double。
Scanner sc = new Scanner(System.in);
System.out.print("Enter a double number:");
String d = sc.next();
while(true) {
boolean dot = false;
for(int i = 0 ; i < d.length() ; i++) {
char ch = d.charAt(i);
// checking for a decimal 'dot'
if(ch == '.') {
dot = true;
break;
}
}
if(dot == false) {
System.out.print("Input is not a double number ReEnter:");
d = sc.next();
}else {
// wrapper class
double age = Double.parseDouble(d);
if(age >= 1 && age <= 25) {
System.out.println("Just prefect");
break;
}else {
System.out.print( "Enter the Age between 1-25 Only!");
d = sc.next();
}
}// else block
}//while block输出:
Enter a double number:1
Input is not a double number ReEnter:20
Input is not a double number ReEnter:26.00
Enter the Age between 1-25 Only!15
Input is not a double number ReEnter:15.0
Just prefect发布于 2020-10-10 01:46:17
你的代码运行得很好。虽然它不会检查到达第二个while循环后是否输入了有效的double,但是最好将验证合并到一个循环中:
Scanner input = new Scanner(System.in);
while(true)
{
if(!input.hasNextDouble()) {
input.nextLine();
System.out.print("Input is not a number ReEnter:");
}else {
double age1 = input.nextDouble();
if (age1 < 1 || age1 > 25){
System.out.print( "Enter the Age between 1-25 Only!");
input.nextLine();
}else {
break;
}
}
}https://stackoverflow.com/questions/64288801
复制相似问题