第四天学习

第四课 程序控制与数组

     程序控制主要有分支控制与循环控制两种,而在分支控制中有if条件语句与switch分支语句;在循环控制中有while语句与for语句。对于if条件语句中的条件判断表达式的结果应该是一个逻辑值,每一个条件下的执行体应该用花括号;而switch语句中的条件判断表达式是一个整型数,且每个case标签后的值是不相等的,无需用花括号。在使用switch的时候不要忘记加上break。基本的循环语句应该包括:初始化语句、循环条件、循环体、迭代语句。在使用do...while结构时,不要忘记在while后面加上分号。在使用while语句时,迭代语句放在执行体一起,因此如果在迭代语句前使用了continue时,迭代语句不执行;而在for语句中,迭代语句与执行体分开,因此在执行体中使用了continue后,也会执行迭代语句。

      控制循环结构中,有两个方法,它们是break与continue。break结束循环而跳出循环体,continue结束执行体后面的语句回到前面。使用break时,可以在后面加一个有效的标签而结束外部循环,当然这个标签是(标签是一个标识符后加一个冒号)在它之前定义好。同样,在使用continue时,也可以在后面加一个有效的标签,因而结束标签后面的所有执行体,重新开始下一个循环。也可以借用return结束方法,从而结束了循环。

      数组中的数据既可以是基本类型的,也可以是引用类型的,只要满足所有数据类型是相同的。对于数组,它也是一个数据类型,因而可以定义变量,即数组类型变量。数组的使用包括:定义,初始化,再使用。在单纯定义数组时,不能指定长度,仅仅表示一个指向某内存地址的指针。初始化即初始化数组元素值,有静态初始化与动态初始化。前者由程序员指定值,语法有两种(new type[]{...}、{...});后者由系统自动初始值(new type[length])。可以在定义的时候初始化,在初始化的时候只能选择一种方式,而不能既选择了静态又选择了动态。可以使用foreach语句来访问一个数组与集合,它可以省略循环条件,迭代语句,而仅仅通过一个临时变量(循环变量)访问数组的元素。在使用foreach时,不能改变数组元素的值。

    数组是一个引用数据类型,因而这个数组引用变量(存放在栈内存)仅仅是一个引用,它与数组元素(存放在堆内存)是分开的。对于方法中的变量,它们是存放在栈内存中的。当方法结束而销毁;但方法中的对象是存放在数据区(堆内存)中,方法结束并不马上销毁。只要当它没有任何引用变量引用它时,该数组才会被内存回收机制回收。

       在基本类型数组的初始化中,只要按照基本的先定义再初始化就可以了。可以先动态初始化,然后通过引用变量去访问元素,赋值元素。对于引用类型的数组,数组元素是一个引用,初始化时仅仅内存中有了这些引用,它们是空。仅仅当指向了具体的对象时,它们才可以访问真正的对象。

    对于多维数组,以二维数组为例,我们可以将它们视为一个一维数组,仅仅它们的元素是一个引用类型(数组类型)。正因为这样,可以形成不等长的二维数组,因为对于第一维来说,它的元素都满足是引用类型;对于第二维来说,可以是不同的引用类型(一般也只能是长度不同)。

基本类型的二维数组使用

它的内存情况如下:

引用类型的二维数组使用

它的内存情况如下:

最后有一些操作数组的工具类:主要有Arrays类提供的静态方法与System类提供的arraycopy方法。

作业(完成时间:12月初):

编写一个人民币的读法字符串;

编写一个控制台的五子棋游戏;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值