Java While循环:负输入检查和添加字符串的try-catch
我得做一个能用的计算器Java While循环:负输入检查和添加字符串的try-catch,java,while-loop,try-catch,Java,While Loop,Try Catch,我得做一个能用的计算器 使用正数输入运行程序,显示输出并询问用户是否要循环 使用字符串输入(2而不是2)运行程序,使用try和catch显示一条消息,告诉用户错误,并询问用户是否希望循环 使用负数输入运行程序,在不显示输出的情况下显示错误消息,并询问用户是否要循环 当我尝试catch时,对于try catch之后的变量,我得到的变量尚未初始化 try { System.out.print("Enter loan amount: "); loanNum = Double.parse
try catch
之后的变量,我得到的变量尚未初始化
try {
System.out.print("Enter loan amount: ");
loanNum = Double.parseDouble(in.nextLine());
System.out.print("Enter rate: ");
rateNum = Double.parseDouble(in.nextLine());
System.out.print("Enter number years: ");
yearNum = Double.parseDouble(in.nextLine());
}
catch(NumberFormatException e) {
System.out.println ("You must enter positive numeric data!");
}
没有try catch
我不知道如何在没有系统的情况下执行第2步。退出(0)代码>不显示输出。这就使得用户能够输入到循环中
我不知道如何修复我的while循环。当我运行程序时,它只运行一次,然后循环一次。之后,它将自动循环,无需提示,并在一行上吐出行,如:
Would you like to calculate again (y/n):
Enter loan amount:
代码:
package whileloopyn;
导入java.util.Scanner;
公共类Whileloopyn{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
//声明变量
双贷款;
双速率;
双策略;
双重渴望;
双月;
双马;
双输出数;
//提示输入并尝试捕获异常错误(输入率为2)
系统输出打印(“输入贷款金额:”);
loanNum=Double.parseDouble(in.nextLine());
系统输出打印(“输入速率:”);
rateNum=Double.parseDouble(在.nextLine()中);
System.out.print(“输入年份:”);
deargenum=Double.parseDouble(in.nextLine());
//正输入数据检查(负,然后再次询问)
如果(loanNum如果用户按下Y
您必须继续该循环:
System.out.printf("Would you like to calculate again (y/n): ");
Scanner s = new Scanner(System.in);
if(s.nextLine().equalsIgnoreCase("y")) {
continue;
} else {
break;
}
你应该写while(loop.equals(“y”){
,而不是while(true){
,因为你已经在这个循环中检查过,如果你问用户,你实际上需要得到输入,而不是直接进入if条件。你还需要在使用任何nextFoo
(不包括nextLine
)方法,通过调用nextLine
。作为此检查的参考
System.out.printf("Would you like to calculate again (y/n): ");
Scanner s = new Scanner(System.in);
if(s.nextLine().equalsIgnoreCase("y")) {
continue;
} else {
break;
}