现在的位置: 首页 > 综合 > 正文

第四天 :循环

2018年05月16日 ⁄ 综合 ⁄ 共 1298字 ⁄ 字号 评论关闭

从char类型的数字字符转到int类型对应的数字,要减去'0';

1 While 循环控制

  while(布尔表达式){
  
  }

  练习: 求 1 ~ 1000 所有素数.
    素数: 除了1 和本身,不能被任何数整除的数.

2 do ... while() 循环控制
  do{
   //循环体
  }while(布尔表达式);
       
3 数组
  a 数组的声明:
    int[] ary; 
    int ary[]; //不推荐的写法!
  b 数组的初始化:
   1 动态初始化: 必须指明数组的长度
    int[] ary = new int[10];    
    int[] ary = new int[]{3,1,4,1,5,9};  
   2 静态初始化: 只能在声明数组时候使用!
    int[] ary = {3,1,4,1,5,9};     
    //ary = {2,7,1,8};//编译错误 
    ary = new int[]{2,7,1,8}; 
    
    java中一切的都是从0开始 。
     
   3 数组成员自动初始化为"零"值.
     "零"值: 0, 0.0, '\u0000', false, null
  c 数组的访问
   1 使用ary.length 属性可以获取数组的长度 
   2 数组的下标(index)从0开始, 最大是length-1
     一共length个元素.
   3 可以使用下标访问指定的元素:
    int a = ary[2];//读取
    ary[2] = 8;//写入
   4 如果越界访问会出现异常(错误)
     ArrayIndexOutOfBoundsException
    
案例练习
  a 等本金还款
    借款本金: 18万
    利息: 5.6% (年利息)
    还款期数(月): 60个月(5年)
    
    每月归还本金: 180000/60=3000
    第1月还利息: (180000-3000*0)*(5.6% / 12)=840
    第2月还利息: (180000-3000*1)*(5.6% / 12)=826
    //...
    第1月  3000  840  3840
    第2月  3000  826  3826
//...

i = 0~59
lixi[60]

   //你只要见到乘除,就要想想是不是上溢出或者下溢出,
   //例如这个,肯定不能带除,所以如果不在前面写double转型,必定会丢失值 。
   double monthPay = (double)benJin/months;


4 数组的扩展问题--ArrayCopyDemo.java十分重要。
学会使用动态数组扩展。
  1 Java数组的大小是固定的
  2 利用数组复制到方法可以变通的实现数组扩展
  3 System.arraycopy() 可以复制数组
  4 Arrays.copyOf() 可以简便的创建数组副本
  5 创建数组副本的同时将数组长度增加就变通的实现了
    数组的扩展

int[] arr2 = ary;//ary2 和 ary是同一个数组
//所以即使你只对其中一个数组的值改变,那么两个都会改变。
记住,它就是两个不同的引用指向堆内存同一块内存。

案例: 统计一个字符在字符串中的所有位置.

    
       
       
       
       
       
       

【上篇】
【下篇】

抱歉!评论已关闭.