Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查2个整数之间的数字_Java_Loops_Netbeans_Integer - Fatal编程技术网

Java 检查2个整数之间的数字

Java 检查2个整数之间的数字,java,loops,netbeans,integer,Java,Loops,Netbeans,Integer,我正在为即将到来的Java测试做修订,我被一个部分卡住了,无法解决它 Q:取2个整数,从整数A到整数B,如果X可以被6或5整除,则显示X,但不能同时被6或5整除,并在每10个数字后打印一行 以下是我目前的代码: public static void main(String[] args) { // TODO code application logic here Scanner sc = new Scanner(System.in); int numOne = sc.ne

我正在为即将到来的Java测试做修订,我被一个部分卡住了,无法解决它

Q:取2个整数,从整数A到整数B,如果X可以被6或5整除,则显示X,但不能同时被6或5整除,并在每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++;
}

您的代码给出了一个无限循环,因为
numOne
while循环之外递增。只需将它移到内部,它似乎就能正常工作。

您的代码会产生一个无限循环,因为
numOne
在while循环之外递增。只需将其移到内部,它似乎就能正常工作。

将代码更改为

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++内部循环。您没有更改循环内的任何变量,因此将得到一个无限循环

将代码更改为

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++内部循环。您不需要更改循环内的任何变量,因此将得到一个无限循环

您的增量在while循环外。您需要在循环体的末尾增加numOne

目前您有一个无限循环。因为numOne从不改变,numTwo总是比numOne更伟大

同时使用排他或
^
,这将使这个问题简单得多:


您知道增量在while循环之外。您需要在循环体的末尾增加numOne

目前您有一个无限循环。因为numOne从不改变,numTwo总是比numOne更伟大

同时使用排他或
^
,这将使这个问题简单得多:

你也可以写:

if ((numOne % 5 == 0 || numOne % 6 == 0) && numOne % 30 != 0)
你也可以写:

if ((numOne % 5 == 0 || numOne % 6 == 0) && numOne % 30 != 0)

非常感谢。我不知道我把增量放在外面了谢谢!我没有意识到我把增量留在了外面