黑马程序员技术交流社区

标题: (石家庄校区) 学习中代码易错分析 [打印本页]

作者: cyy1737    时间: 2019-5-7 15:02
标题: (石家庄校区) 学习中代码易错分析
一:递归时的逻辑思路不容易想明白,容易敲代码的时候不给定递归的限制条件,造成递归太深占内存溢出错误      public class BuSiShentu {
      public static void main(String[] args) {
        long q1 = System.currentTimeMillis();
        double[] arr=new double[100];
      arr[0]=1;
      arr[1]=1;
        for (int i = 2; i < arr.length; i++) {
            arr=arr[i-1]+arr[i-2];
        }
        System.out.println(arr[arr.length-1]);
        long m1 = System.currentTimeMillis();
        System.out.println("for用时"+(m1-q1));

        long q2 = System.currentTimeMillis();
        double duishu = duishu(100);
        System.out.println(duishu);
        long m2 = System.currentTimeMillis();
        System.out.println("递归用时:"+(m2-q2));
        }
          public static double duishu(double i){
         if (i==1||i==2){     //条件
            return 1;
        }else {
            return duishu(i-1)+duishu(i-2);
        }
       }
     }   二.判断字符串数组中有数字字符就把包含数字的元素删除,五一假期的一道作业题.     错误原因分析: 敲完之后运结果只有一个元素,后分析有可能是第二层循环多次删除第一层循环中的元素.后载第二层循环判断中加入     break完美解决.      import java.util.ArrayList;
//String arr[]={“0af3s2sf”,”s6ds1”,”jjww”,”lailai”}
public class ShanchuShuZi {
    public static void main(String[] args) {
        String arr[]={"0af3s2sf","s6ds1","jjww","lailai"};
        removenumber(arr);
    }
    public static void removenumber(String[] s){
        ArrayList<String> list=new ArrayList<>();
        for (int i = 0; i < s.length; i++) {
            list.add(s);
        }
        for (int i = list.size()-1; i >=0; i--) {
            String s1 = list.get(i);
            for (int i1 = 0; i1 < s1.length(); i1++) {
                if (s1.charAt(i1)>='0'&&s1.charAt(i1)<='9'){
                    System.out.println(i);
                    System.out.println(list.size());
                    System.out.println("----------");

                    list.remove(i);
                    break;          易错处
                }
            }
        }
        System.out.println(list);
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2