我是新来的,也是 Java 新手,大约 1-2 周前开始,我想制作一个应用毕达哥拉理论的应用程序。一切都完成了,但现在我陷入了一个困境,我希望用户在输入字符或字符串而不是数字时被询问是否要重试、重新开始。
我做错了什么?这是我的代码,我也添加了注释,这样万一您不明白我想要实现的目标,它会更容易。
提前致谢!
package pitagoracalculator;
import java.util.Scanner;
public class PitagoraCalculator {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double nr1;
double nr2;
double ipot;
boolean raspuns;
String raspuns1;
do{
try{
//user is asked for first number
System.out.print("Introduceti primul numar: ");
nr1 = input.nextDouble();
//user is asked for second number
System.out.print("Introduceti al 2-lea numar: ");
nr2 = input.nextDouble();
//result of calculation
ipot = (nr1*nr1)+(nr2*nr2);
System.out.println("Rezultatul este: "+ipot+"^2");
//in case user inserts a string/char instead of a double => error
} catch (Exception e){
System.err.println("Nu ati introdus un numar.");
break;
}
//user is asked if he wants to do another calculation
System.out.println("Doriti sa faceti un alt calcul? (da/nu)");
raspuns1 = input.next();
//if his answer is yes, raspuns = true, else raspuns = false
if(raspuns1.equalsIgnoreCase("da"))
raspuns = true;
else{
System.out.println("La revedere!");
raspuns = false;
}
//checks if the answer was true or false
}while(raspuns == true);
}
}
最佳答案
替换
//in case user inserts a string/char instead of a double => error
} catch (Exception e){
System.err.println("Nu ati introdus un numar.");
break;
}
与
//in case user inserts a string/char instead of a double => error
} catch (Exception e){
System.err.println("Nu ati introdus un numar.");
//clear pending input.
if (input.hasNext()) {
input.next();
}
continue;
}
“break”退出循环,“Continue”将继续下一个循环。
您还必须使用 true 初始化 raspuns 变量
boolean raspuns = true;
关于java - 如果用户输入了字符/字符串而不是数字,如何询问用户是否要重新启动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29373393/