请你抽根烟\n 2022-05-22 04:49 采纳率: 73.7%
浏览 29
已结题

Java的break怎么过滤不掉9

class Main {
public static void main(String[] args) {

for(int m=2;m<=100;m++){

  for(int a=2;a<m;a++){
      if(m%a==0){
         break;
      } //9%3 不是等于0吗,怎么9还是被打印出来了。
      System.out.print(m);
  }

}
}
}

  • 写回答

2条回答 默认 最新

  • Roc-xb 后端领域优质创作者 2022-05-22 05:49
    关注

    因为当m=9,a=2的时候,m % a是等于1的,此时就会打印出m的值,m=9
    执行内层循环a++,此时,m=9,a=3。
    这时候,m%a==0 是满足条件的,所以此时就跳出内层循环。
    如果你是想求2~100之间的质数:可以这样修改

    package com.csdn;
    
    public class Main {
        public static void main(String[] args) {
            for (int m = 2; m <= 100; m++) {
                boolean flag = true;
                for (int a = 2; a < m; a++) {
                    if (m % a == 0) {
                        flag = false;
                        break;
                    }
    
                }
                if (flag) {
                    System.out.print(m + " ");
                }
            }
        }
    
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月22日
  • 已采纳回答 5月22日
  • 创建了问题 5月22日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!