public class PrimeNumber{
      
      public static int selectPrime(int i){
           for(int k=2;k<i;k++){
              int n=0;
              if(i%k==0) return;
              if(i%k!=0) n=i/k; 
              if(n>1) continue; 
              else   System.out.println(i);
          }
      }
      public static void main(String[] args){
          
          try{
             System.out.println("1~100内的素数为:");
             for(int j=2;j<100;j++){
              selectPrime(int j);
               
             }
          }catch(Exception exc){
                System.out.println("程序出错!");
           }
      }
}

解决方案 »

  1.   

    你的try catch想捕获什么异常???
      

  2.   

    > if(i%k==0) return;你的程序编译肯定不能通过,怎么运行啊?
      

  3.   

    程序里面有两个错误:
    1、 if(i%k==0) return;返回了一个空值,而不是方法中需要得int型;
    2、 selectPrime(int j); j前面已经定义为int型,这里又进行重定义,而且没有赋值。应该删除int标记
      

  4.   

    1. 你的 selectPrime(int i) 是不应该有返回值的
    2. main 方法中不需要 try-catch 块
    3. main 方法中调用selectPrime(int i)这个方法时不应该加上参数据类型,正确的调用应该是selectPrime(i)
      

  5.   

    else
        System.out.println(i);
    这个语句也不应该在 for 循环中写,这样写会出现大量重复数据,要写在外面
      

  6.   

    public class PrimeNumber{
          
          public static void selectPrime(int i){
               for(int k=2;k<i;k++){
                  int n=0;
                  if(i%k==0) return ;
                  if(i%k!=0) n=i/k; 
                  if(n>1) continue; 
              }
              System.out.println(i);
          }
          public static void main(String[] args){
                 System.out.println("1~100内的素数为:");
                 for(int j=2;j<100;j++){
                  selectPrime(j);
                   
                 }
          }
    }这样改是可以了,但是还是不清楚,return,只是跳出循环,System.out.println应该每次都要输出才对呀。为什么和想的不一样呢?