package com.web;public class bb {   public static void main(String[] args) {    System.out.print(f(6));
    }
          public static long f(int n) {
        
           long i = 1L;
           long j = 1L;
           long f = 0;
           for(int k = 0; k < n - 2; k++){
           f = i + j;
           i = j;
           j = f;
             (1)return f;
           }
           (2)return f;
          }
}package com.web;public class bb {  public static void main(String[] args) {      for(int i = 101; i < 200 ; i += 2){
  boolean f = true
      for(int j = 2; j < i; j++){
      if(i % j == 0){
      f = false;
      break;
      (1)System.out.print(i);
      }
      }
  (2)System.out.print(i);
   }
         }
}第一个代码的(1)return f;  和(2)return f;  第二个代码的(1)System.out.print(i);和(2)System.out.print(i);比较,能说说吗,我写代码时最容易犯这错误,把1的位置写到2,或把2写到1,搞不清楚,麻烦说下

解决方案 »

  1.   

    就是根据你所放的位置的不同,当然会结果不同了
    第一个比较,(1)无论for想执行多少次,如果执行只执行一遍就退出这个方法了(2)直到整个循环结束才返回
    第二个比较,(1)内层循环每执行一次就打出一条(2)外层循环执行一次打出一条
    其实你把程序运行起来,直接看结果应该很直观的就能展现出来
      

  2.   

    第一种情况一般是等for循环遍历完再打印出结果,用(2)return f 比较多;
    第二种情况是在for循环里面执行遍历的同时要执行判断语句,符合判断条件的才打印结果,用(1)System.out.print(i) 比较多。不过你的语句中“(1)System.out.print(i)”应该放在break之前才是正确的。