Java 写入while(*/表示变量不等于双精度)循环

Java 写入while(*/表示变量不等于双精度)循环,java,Java,我希望下面的代码在用户每次输入非数字输入时循环 例如,如果用户输入a(p),代码应显示“请输入有效数字,并将用户带回”输入第一个数字“ 但是,如果用户在第一个数字中输入了一个数字,但在sec中输入了一个非数字,我希望代码能让用户“输入sec数字”而不是“输入第一个数字” 您将需要两个循环 double s1 = 0; double s2 = 0; boolean s1Valid = false; boolean s2Valid = false; while (!s1Valid) {

我希望下面的代码在用户每次输入非数字输入时循环 例如,如果用户输入a(p),代码应显示“请输入有效数字,并将用户带回”输入第一个数字“

但是,如果用户在第一个数字中输入了一个数字,但在sec中输入了一个非数字,我希望代码能让用户“输入sec数字”而不是“输入第一个数字”


您将需要两个循环

double s1 = 0;
double s2 = 0;

boolean s1Valid = false;
boolean s2Valid = false;

while (!s1Valid) {
    try {
        s1 = Double.valueOf(getinput("enter first number"));
        s1Valid = true;
    } catch (NumberFormatException e) { // you should declare exceptions as specifically as possible
        System.out.println("please enter a Valid number");
    }
}

while (!s2Valid) {
    try {
        s2 = Double.valueOf(getinput("enter second number"));
        s2Valid = true;
    } catch (NumberFormatException e) {
        System.out.println("please enter a Valid number");
    }
}

您可以使用两个循环,每个数字一个循环,当Double不再为null时,可以进一步使用

public static void main(String[] args) {

    Double s1 = null;
    Double s2 = null;

    while (true) {

        while(s1 == null){
          try {
            s1 = Double.valueOf(getinput("enter first number"));
          } catch (Exception e) {
            System.out.println("please enter a Valid number");
          }
        }

       while(s2 == null){
          try {
            s2 = Double.valueOf(getinput("enter first number"));
          } catch (Exception e) {
            System.out.println("please enter a Valid number");
          }
        }

    }

您的问题是什么?使用两个循环,一个用于获取第一个数字,另一个用于获取第二个数字,您可以编写一个函数
double getDouble(字符串提示)
,该函数在用户输入有效输入之前不会返回。然后调用该函数,使
继续在循环块的末尾是不必要的。
public static void main(String[] args) {

    Double s1 = null;
    Double s2 = null;

    while (true) {

        while(s1 == null){
          try {
            s1 = Double.valueOf(getinput("enter first number"));
          } catch (Exception e) {
            System.out.println("please enter a Valid number");
          }
        }

       while(s2 == null){
          try {
            s2 = Double.valueOf(getinput("enter first number"));
          } catch (Exception e) {
            System.out.println("please enter a Valid number");
          }
        }

    }