有 Java 编程相关的问题?

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

如果其中一个输入不正确,java运行循环会延长一段时间

我有一个for循环,要求分数在0到10之间。它要求一定的数额取决于法官的人数

代码如下:

        System.out.println("Number of judges: ");
        int numOfJudges = IO.readInt();

        int sum = 0;

        for (int i=0; i<numOfJudges; i++) {
            System.out.print("Enter judge's score: ");
            int score = IO.readInt();

            if (score >= 0 && score <= 10) {
            sum += score;
            } else {
                System.out.println("Incorrect number, must be between 0 and 10.");
            }
        }
        System.out.println(sum);

我想说明的是,如果输入的数字不在0和10之间,它不会将其作为i < numOfJudges的条件之一计算。 例如,如果我有3个判断,我输入了2个错误的输入,它仍然只会运行循环3次(并且只考虑好的输入),而我真的希望它运行5次以弥补两个错误的输入


共 (2) 个答案

  1. # 1 楼答案

    在ELSE条件下增加numOfJudges,这样FOR循环将运行,直到获得所需数量的正确输入

    这是最短最干净的解决方案

    else {
        System.out.println("Incorrect number, must be between 0 and 10.");
        numOfJudges++;
    }
    
  2. # 2 楼答案

    可以在for循环中使用while循环,而不是调整for循环:

    for (int i=0; i<numOfJudges; i++) {
        while(true){
            System.out.print("Enter judge's score: ");
            int score = IO.readInt();
    
            if (score >= 0 && score <= 10) {
                sum += score;
                break; //jump out of while-loop
            }else {
                System.out.println("Incorrect number, must be between 0 and 10.");
            }
        }
    }
    System.out.println(sum);