当前位置: 代码迷 >> Java相关 >> 哪位高手帮小弟我看一下代码错哪了,Java基础
  详细解决方案

哪位高手帮小弟我看一下代码错哪了,Java基础

热度:72   发布时间:2016-04-22 20:38:49.0
谁帮我看一下代码哪里错了,Java基础
package cn.cmcc;

public class Test01 {
    
    private static boolean isPrime (int num) {
        
        
        if (num == 1) {
            return false;
        }
        long sqrtNum = (long) Math.sqrt(num);
        
      
        
        for (int i = 1; i < sqrtNum; i++) {//为什么i++没有变化,
            
           
            if (num % i == 0) {
                System.out.print("false");
                return false;
            }
            
            

        }
        
        return true;
        
    }
    public static void main(String[] args) {
        for (int i = 1; i < 101; i++) {

            if (isPrime(i)) {
                System.out.println(i);
            }
        }

    }

    

}

------解决思路----------------------
  if (num == 1) {
            return false;
        }
        long sqrtNum = (long) Math.sqrt(num);
         
       
         
        for (int i = 1; i < sqrtNum; i++) {//为什么i++没有变化,
             
            
            if (num % i == 0) {
                System.out.print("false");
                return false;
            }

问题出在不管你num多大,num和1取模都是0,那么循法的第一次条件就成立了,直接返回了,不再执行循环了
你的循环只有一次,主体跳出后没有执行i++的必要了


  相关解决方案