有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java致力于循环迭代。有没有一种方法可以调用这些方法而不需要几个“do”声明

        //Setting my variables.

      Scanner keyboard = new Scanner(System.in); // Initalizing keyboard to scanner input
      int quarter;
      double balance, intrestRate;
      boolean correct = false;

        //Loop iterations to resolve error, and determine value for each input.

      do{ //Beginning loop for number of quarters, must be between 1-10
     System.out.println("Enter a number between 1 and 10 for the amount of quarters");
     quarter = keyboard.nextInt();

     if(quarter >= 1 && quarter <= 10) //If quarter is between 1 and 10
     {
        System.out.println("You have " + quarter + " quarters.");
        correct = true;
     }
     else
     {
        System.out.println("Number of quarters must be between 1 and 10");
        correct = false;
     }
     }while(!correct);

    do{  //Second loop for rate of intrest.
     System.out.println("Enter intrest rate without percent a sign. Must be greaters than 5% and less than 25%.");
     intrestRate = keyboard.nextDouble();

     if (intrestRate >= 5 && intrestRate <=25)
     {
        System.out.println("You have selected a " + intrestRate + "% rate of intrest.");
        correct = true;
     }
     else
     {
        correct = false;
     }
  }while(!correct);
 }
}

这是我的代码。我正在试验循环和if-else类型语句。我觉得,我的方法很复杂,很容易总结或修改。有人知道如何处理,只声明一个do语句吗?这段代码只是我实验的开始阶段,还有很多工作要做。但在我继续之前,我希望能有另一双眼睛


共 (1) 个答案

  1. # 1 楼答案

    在有效输入上使用带有break的无限循环。增强以处理错误输入

    Scanner keyboard = new Scanner(System.in);
    
    int quarter;
    while (true) {
        System.out.print("Enter number of quarters (1-10): ");
        if (keyboard.hasNextInt() && (quarter = keyboard.nextInt()) >= 1 && quarter <= 10)
            break;
        keyboard.nextLine(); // Discard bad input
        System.out.println("Number of quarters must be between 1 and 10");
    }
    keyboard.nextLine(); // Discard rest of line
    System.out.println("You have " + quarter + " quarters.");
    
    double intrestRate;
    while (true) {
        System.out.print("Enter interest rate (5%-25%), without percent sign: ");
        if (keyboard.hasNextDouble() && (intrestRate = keyboard.nextDouble()) >= 5 && intrestRate <= 25)
            break;
        keyboard.nextLine(); // Discard bad input
        System.out.println("Interest rate must be between 5% and 25%");
    }
    keyboard.nextLine(); // Discard rest of line
    System.out.println("You have selected a " + intrestRate + "% rate of interest.");