我正在学习一个Java类,我被困在一个赋值中,使用hasNext命令错误检查两个用户输入的变量,以确保它们是数值的。这就是我到目前为止所做的。
Scanner sc=new Scanner(System.in);
String choice = "y";
double firstside;
double secondside;
//obtain user input
while (choice.equalsIgnoreCase("y")) {
System.out.println("Enter First Side: ");
if (sc.hasNextDouble()) {
firstside = sc.nextDouble();
} else {
sc.nextLine();
System.out.println("Please enter a numeric value and try again.");
continue;
}
while (true){
System.out.println("Enter Second Side: ");
if (sc.hasNextDouble()) {
secondside = sc.nextDouble();
break;
} else {
sc.nextLine();
System.out.println("Please enter a numeric value and try again.");
}
}
//calculate results
double hypotenusesquared = Math.pow(firstside, 2) + Math.pow(secondside, 2);
double hypotenuse = Math.sqrt(hypotenusesquared);
//display results
String output = "Hypotenuse = " + hypotenuse;
System.out.println(output);
System.out.println("Would you like to continue? Y/N?");
choice = sc.next();
}
} }
出现错误时,我收到的输出是:
请输入一个数值,然后重试。输入第一面:请输入一个数值,然后重试。输入第一面:
我打算只接收:
请输入一个数值,然后重试。输入第一面:
那是因为继续;您的第二条语句的
使您的程序返回到while循环的第一行(下一次迭代)。
为了克服它,您应该将第二侧扫描语句放在它自己的while
循环中。类似于这样:
System.out.println("Enter Second Side: "); //move this inside below loop if you want to prompt user for each invalid input.
while(true) {
if (sc.hasNextDouble()) {
secondside = sc.nextDouble();
break; //if we get double value, then break this loop;
} else {
sc.nextLine();
continue; //you can remove this continue
}
}
我有下面的代码,我正在检查两个变量的NOTNULL检查。 有没有办法在一个条件下检查not,比如在java中。
问题内容: 我对此代码有疑问: 错误的解释是: 作业的左侧必须是变量。 我理解这意味着什么,但是如何将上面的代码转换为正确的代码? 问题答案: 我在您的代码中看到一些错误。 您可能是数学术语 90 <=角度<= 180,表示角度在90-180之间。
目录类 驱动程序类
是否有更简单的方法来确定变量是否等于一系列值,例如: 而不是像这样迟钝的事情: ?
DescriptionServer遇到了一个内部错误(),它无法满足此请求。 例外 jasperException:java.lang.NullPointerException根本原因 NullPointerException
本文向大家介绍写一个使两个整数进行交换的方法(不能使用临时变量)相关面试题,主要包含被问及写一个使两个整数进行交换的方法(不能使用临时变量)时的应答技巧和注意事项,需要的朋友参考一下 ES6 ES5 ES 6 这个 优秀