我正在为即将进行的Java测试做修订,但是我陷入了困境,无法解决它。

问:取2个整数(从Int A到Int B),如果X可以被6或5整除(但不能同时被两者除),则显示X,并每隔10个数字打印一个新行。

下面是我当前的代码:

public static void main(String[] args) {
    // TODO code application logic here
    Scanner sc = new Scanner(System.in);
    int numOne = sc.nextInt();
    int numTwo = sc.nextInt();
    int line = 1;

    while (numTwo > numOne) {

        if (line%11==0){
            System.out.println("");
        }

        if ((numOne % 5 == 0) && (numOne % 6 != 0)) {
            System.out.print(numOne + " ");
            line++;
        }
        if ((numOne % 6 == 0) && (numOne % 5 != 0)) {
            System.out.print(numOne + " ");
            line++;
        }
    }
    numOne++;
}

最佳答案

将代码更改为

while (numTwo > numOne) {

        if (line%11==0){
            System.out.println("");
        }

        if ((numOne % 5 == 0) && (numOne % 6 != 0)) {
            System.out.print(numOne + " ");
            line++;
        }
        if ((numOne % 6 == 0) && (numOne % 5 != 0)) {
            System.out.print(numOne + " ");
            line++;
        }
      numOne++;
    }


在循环内移动numOne++;。您无需在循环内更改任何变量,因此将获得无限循环

09-30 18:14