Java 如何将条件合并到试捕中?

Java 如何将条件合并到试捕中?,java,loops,try-catch,java.util.scanner,user-input,Java,Loops,Try Catch,Java.util.scanner,User Input,此代码不断要求用户输入双值,直到用户输入空行。当用户输入非双精度值(如字符串)时,将显示无效的输入消息。目前,即使用户输入空行,也会显示无效的输入消息,我理解原因。当我输入一个空行时,让无效输入不显示的最佳方法是什么。我不确定是否有一种使用try-catch的方法,或者我只是需要使用其他方法 System.out.println("Type in the polynomials in increasing powers."); Scanner prompt = new Sca

此代码不断要求用户输入双值,直到用户输入空行。当用户输入非双精度值(如字符串)时,将显示无效的输入消息。目前,即使用户输入空行,也会显示无效的输入消息,我理解原因。当我输入一个空行时,让无效输入不显示的最佳方法是什么。我不确定是否有一种使用try-catch的方法,或者我只是需要使用其他方法

System.out.println("Type in the polynomials in increasing powers.");
Scanner prompt = new Scanner(System.in);
String input = " ";
double parsed;
int counter = 0;

while (!(input.equals("")) & counter < 10) {
    input = prompt.nextLine();
    try {
        parsed = Double.parseDouble(input);
        expression.addCoefficient(parsed);
        counter++;
    }
    catch (NumberFormatException e) {
        System.out.println("Invalid input");
    }
    
System.out.println(“输入幂递增的多项式”);
扫描仪提示=新扫描仪(System.in);
字符串输入=”;
双重解析;
int计数器=0;
while(!(input.equals(“”)和计数器<10){
输入=prompt.nextLine();
试一试{
parsed=Double.parseDouble(输入);
表达式.addcovercient(已解析);
计数器++;
}
捕获(数字格式){
System.out.println(“无效输入”);
}
while(计数器<10&!(输入=prompt.nextLine())。等于(“”)){
试一试{
parsed=Double.parseDouble(输入);
表达式.addcovercient(已解析);
计数器++;
}
捕获(数字格式){
System.out.println(“无效输入”);
}
}

注意,需要首先显示计数器上的测试。一旦用户犯了10个错误,请停止询问。

当用户按enter键时,您可以使用以下命令跳过:

public static void main(String[] args) {
        System.out.println("Type in the polynomials in increasing powers.");
        String NEW_LINE = "\n";
        Scanner sc = new Scanner(System.in);
        String input = sc.next();
        double parsed;
        int counter = 0;

        while (counter < 10) {

            if (input.equals(NEW_LINE)){
                continue;
            }
            try {
                parsed = Double.valueOf(input);
                //expression.addCoefficient(parsed);
                System.out.println(parsed);
                counter++;
            }
            catch (NumberFormatException e) {
                System.out.println("Invalid input");
            }
        }
publicstaticvoidmain(字符串[]args){
System.out.println(“输入幂递增的多项式”);
字符串NEW_LINE=“\n”;
扫描仪sc=新的扫描仪(System.in);
字符串输入=sc.next();
双重解析;
int计数器=0;
while(计数器<10){
if(输入等于(新行)){
继续;
}
试一试{
解析=Double.valueOf(输入);
//表达式.addcovercient(已解析);
System.out.println(已解析);
计数器++;
}
捕获(数字格式){
System.out.println(“无效输入”);
}
}

您可以编写封装try/catch块的
tryParseDouble
方法,也可以使用。
public static void main(String[] args) {
        System.out.println("Type in the polynomials in increasing powers.");
        String NEW_LINE = "\n";
        Scanner sc = new Scanner(System.in);
        String input = sc.next();
        double parsed;
        int counter = 0;

        while (counter < 10) {

            if (input.equals(NEW_LINE)){
                continue;
            }
            try {
                parsed = Double.valueOf(input);
                //expression.addCoefficient(parsed);
                System.out.println(parsed);
                counter++;
            }
            catch (NumberFormatException e) {
                System.out.println("Invalid input");
            }
        }