可能是我的问题的原因是什么,我该如何解决它:
如果用户输入的值而不是双,我的程序会崩溃。
public class Annual
{
public static void main(String[] args)
{
Scanner percent = new Scanner(System.in);
System.out.println("Please enter annual sales:");
double yearly = percent.nextInt();
double T = 50000;
double Amt;
if (yearly.matches("[0-9]+") && yearly.length() > 2 && yearly.length() <= 8)
{
double YrPrcnt = yearly * .05;
Amt = T + YrPrcnt;
System.out.print("The Annual Payrate for employee is:");
System.out.print(Amt);
}
}
}
“ double无法解除引用”和“非法开始表达”
最简单的方法:检查用户输入是否为数字,如果是,则提供错误消息。
我在NetBeans 7.2中对此进行编码,并且是Java新手。
答案 0 :(得分:2)
yearly.matches
double
(每年)是原始类型,你不能在原语上调用方法(匹配(或)任何)。
要检查输入是否为范围,您需要使用大于和小于运算符。
答案 1 :(得分:1)
if (yearly.matches("[0-9]+") && yearly.length() > 2 && yearly.length() <= 8)
您在此处将yearly
视为字符串。如果这是你的意图,那么将用户输入读入String,对该字符串执行检查并使用Double.parseDouble()
方法将其转换为double。