A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 无气打火机 于 2013-6-22 21:02 编辑

class Demo {
        public static void main(String[] args) {
                //System.out.println("Hello World!");
                int[] arr={33,22,31};
            int inter=2;
            boolean isZhi=true;
            for (int x = 0; x < arr.length; x++) {
                        while(inter < (arr[x]/2)){
                                if(arr[x] % inter == 0) {
                                                
                                        isZhi=false;
                                        break;
                                }
                                inter++;
                        }
                        if(isZhi) {        
                                arr[x]=0;
                        }
                                System.out.println(arr[x]);
                }
        }
}
以上是代码  为什么31不赋值为0 它是质数啊

评分

参与人数 1技术分 +1 收起 理由
Just_Only + 1 神马都是浮云

查看全部评分

1 个回复

倒序浏览
以下是修改后的程序,部分解释在代码中:
class Demo
{
        public static void main(String[] args)
  {
              int[] arr={33,22,31};
           // int inter=2;
           // boolean isZhi=true;
     /*
     boolean标志,如果定义在这里,那么它参与整个运算过程中,只赋值了一次,
     那么,在第二次赋值时,也就是 执行“isZhi=false;”语句后,之后的isZhi的值
     一直为false,那么arr[x] = 0;就一直执行不到。
     inter 的初始化也是一样的道理。
     */
     
            for (int x = 0; x < arr.length; x++)
   {
     int inter=2;
     boolean isZhi=true;
                 while(inter < (arr[x]/2))
    {
                    if(arr[x] % inter == 0)
     {           
                         isZhi=false;
                          break;
     }
      inter++;
    }
    if(isZhi)
    {
     arr[x]=0;
    }
     System.out.println(arr[x]);
              }
        }
}

评分

参与人数 1技术分 +1 收起 理由
张勇1993 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马