判断101-200之间有多少个素数,并输出所有素数。为什么,没有break,输出的答案是错误的

    for(int i=101;i<=200;i++) {
        for(int j=2;j<=i-1;j++) {
            if(i%j!=0) {
            System.out.println(i+"是素数");
        }
            //break;   //没有break不行
        }
    }

用如下 判断是否是素数:

/**
 * @author huazie
 * @version 2.0.0
 * @since 2.0.0
 */
public class Demo {

    public static void main(String[] args) {
        int count = 0;
        for(int i=101;i<=200;i++) {
            if (isPrime(i)) {
                count++;
                System.out.print(i + " ");
            }
        }
        System.out.println("\n总数:" + count);
    }

    private static boolean isPrime(int n) {
        boolean isPrime = true;
        for (int i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                isPrime = false;
                break;
            }
        }
        return isPrime;
    }
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/182089
  • 除此之外, 这篇博客: 《保姆系列三》细数 for 循环中的那些坑!实例展示中的 2.1 循环如果满足了查找的需求 break 直接跳出,不要浪费性能【★★★】 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
       public static void main(String[] args) {
           int size = 1000;
           for (int i = 1;i<size;i++){
               if ( i == 10){
                   doSomeThing();
                   // 此处应该直接break,尽快结束循环
              }
          }
      }

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^