我的Java块缺少什么?

我的Java块缺少什么?,java,c++,Java,C++,我是新手。我有一个程序,可以从数字1-100中提取素数。下面的代码可以编译,但在解释时会给出一个空白输出 然而,当我省略嵌套for block 2nd for block中的一对花括号时,它将给出正确的输出 我在C++中也尝试过,这个问题是一样的。我是不是遗漏了什么?提前谢谢 public class PrimeNumbers { public static void main (String args[]) { int i, j; for(i=2;i&

我是新手。我有一个程序,可以从数字1-100中提取素数。下面的代码可以编译,但在解释时会给出一个空白输出

然而,当我省略嵌套for block 2nd for block中的一对花括号时,它将给出正确的输出

<>我在C++中也尝试过,这个问题是一样的。我是不是遗漏了什么?提前谢谢

public class PrimeNumbers {
    public static void main (String args[]) {
        int i, j;

        for(i=2;i<=100;i++) {

            for(j=2;j<=(i/j);j++) {
                if ((i%j == 0)) {
                    break;
                }

                if(j > (i/j)) {
                    System.out.println(i);
                }
            }                               
         }
     }
}
这里是C++中的代码,这个问题与块第二的相同
#include <iostream>
using namespace std;

int main() {
    int i, j;
    for(i=2;i<=100;i++) {
        for(j=2;j<=(i/j);j++) {
            if(!(i%j))
                break;
            if(j > (i/j))
                cout << i;
        }
    }
    return 0;
}

第二个for循环的条件为j=2;j i/j。当j正常时,退出for循环。下面是如何检查2到100之间的素数

public class PrimeNumbers {

public static void main(String args[]) {
    int i, j;

    for (i = 2; i <= 100; i++) {
        boolean prime = true;
        for (j = 2; j < i; j++) {
            if (i % j == 0) {
                prime = false;
                j=i;
            }
        }
        if (prime) {
            System.out.println(i + " is prime");
        }
    }
}
关于代码,请在第二个if之前关闭嵌套for循环。 因此,请按如下方式编辑您的代码:

public class PrimeNumbers {

public static void main(String args[]) {
    int i, j;

    for (i = 2; i <= 100; i++) {

        for (j = 2; j <= (i / j); j++) {
            if ((i % j == 0)) {
                break;
            }
        }

        if (j > (i / j)) {
            System.out.println(i);
        }
    }
}
}

如果你尝试C++,那么你的代码在哪里呢?这就是我丢失的地方。我的第二个If块应属于第一个For块。谢谢,这回答了我的问题。