第四天:
第三章(续)
1.语句
a)条件语句:有些代码只有满足特定条件的情况下才会被执行
1)if...else
a. if后面的表达式必须是布尔表达式,而不能为数字类型,例如下面的if(x)是非法的。
b. 假如if语句或else语句的程序代码块中包括多条语句,则必须放在大括号{}内。
若程序代码块只有一条语句则可以不用大括号{}。流程控制语句(如if...else语句)
可作为一条语句看待。
c.只可能执行一个分支,不可能执行多条分支
2)switch
a. switch后条件的类型必须是byte, short, char或者int;
jdk1.7之后可以使用String类型。
b. 各个case子句的值不同,数据类型必须和switch后条件的数据类型相同;
c. 当switch表达式的值不与任何case子句匹配时,程序执行default子句,
假如没有default子句,则程序直接退出switch语句。
default子句可以位于switch语句中的任何位置。
d. 如果switch表达式与某个case表达式匹配,或者与default情况匹配,
就从这个case子句或default子句开始执行。
假如遇到break,就退出整个switch语句,否则依次执行switch语句中后续的case子句,
不再检查case表达式的值。
e. switch语句的功能也可以用if...else语句来实现。
但switch语句会使程序更简洁,可读性更强。而if...else功能更为强大。
b)循环语句
循环语句的作用是反复执行一段代码,直到不满足循环条件为止。
循环语句一般应包括如下四部分内容:
i)初始化部分:用来设置循环的一些初始条件,
比如循环控制变量的初始值;
ii)循环条件:这是一个布尔表达式,
每一次循环都要对该表达式求值,
以判断到底继续循环还是终止循环。
iii) 循环体:这是循环操作的主体内容,可以是一条语句,也可以是多条语句;
iv) 迭代部分:用来改变循环控制变量的值,
从而改变循环条件表达式的值;
1)for
语法:for(初始化部分;循环条件;迭代部分) {
循环体
}
2)while
语法:[初始化部分]
while(循环条件) {
循环体,包括迭代部分
}
当循环条件为true时,就重复执行循环,否则终止循环;
3)do..while
和while非常类似,只不过先执行循环体,然后再判断循环条件。
语法:[初始化部分]
do {
循环体,包括迭代部分
} while(循环条件);
4)循环语句中流程跳转
a) break: 终止当前或指定循环;
b) continue: 跳过本次循环,执行下一次循环,
或执行标号标识的循环体。
c) label: 标号用来标识程序中的语句,标号的名字可以是任意的合法标识符。
continue语句中的标识必须定义在while、do...while和for循环语句前面;
break语句中的标识必须定义在while、do...while和for循环语句或switch语句前面;
//
第四章: Array
一:什么是数组,什么时候使用数组?
数组是用来保存一组数据类型相同的元素的有序集合,
数组中的每个数据称为元素。
有序集合可以按照顺序或者下标取数组中的元素
在Java中,数组也是Java对象。数组中的元素可以是任意类型(
包括基本类型和引用类),但同一个数组里只能存放类型相同的元素。
二:什么时候用数组?
1)保存一堆数据类型相同的数据的时候
2)数据要求有顺序
三:数组和链表的区别
a)在内存开辟难易程度上?
数组内存分配必须是一块连续的内存空间。
链表内存分配不一定是连续的内存空间。
b)在项目中如何选择?
项目重点在数据的增删改,选择链表。不需要数据的大量搬移
项目重点在数据的查询,选择数组,检索效率非常高。
四:创建数组大致包括如下步骤:
. 声明一个数组类型的引用变量,简称为数组变量;
. 用new语句构造数组的实例。new语句为数组分配内存,并且为数组中的每个元素赋予默认值;
. 初始化,即为数组的每个元素设置合适的初始值。
a)数组变量的声明;
1) 一个存放同一类型数据的集合
a. 即可以是基本类型,也可以是对象类型;
b. 数组中的每个数据为元素;
2) 数组是一个对象,成员是数组长度和数组中的元素;
3) 申明了一个数组变量并不是创建了一个对象;
4) 申明数组的方式;
int[] IArray 或者 int IArray[] 基本数据类型数组,
数组中存放的是基本数据类型。
Teacher[] tArray 或者 Teacher tArray[]类数组,
数组中存放的是Teacher类创建的若干个的对象。
注意:1) 声明数组变量的时侯,不能指定数组的长度,以下声明方式是非法的。
int x[1];
int[2] x;
b)初始化数组
初始化:自变量创建后首次赋值的过程;
创建数组对象;数组对象和其他Java对象一样,也用new语句创建;
int[] iArray = new int[2];
new语句执行以下步骤:
a. 在堆区中为数组分配内存空间,以上代码创建了一个包含2个元素的int数组;
每个元素都是int类型,占4个字节,因此整个数组对象在内存中占用8个字节。
b. 为数组中的每个元素赋予其数据类型的默认值。
byte/short/int/long 0
float 0.0f
double 0.0d
String null
char '\u0000'
boolean false
c. 返回数组对象的引用
c)初始化数组对象;
数组中的每个元素都有一个索引,或者称为下标。
数组中的第一个元素的索引为0,第二个元素的索引为1, 依次类推。
通过索引可以访问数组中的元素或者给数组中元素内容赋值。
1) 声明、创建、初始化分开:
int[] iArray;
iArray = new int[2];
iArray[0] = 0;
iArray[1] = 1;
2) 声明、创建的同时并初始化数组;
int[] iArray = {0, 1};
Student sArray[] = new Student[] {
new Student(“George”, “Male”, 20), new Student()};
Student[] stArray = { new Student(), new Student()} ;
注意:a. 非法的数组初始化方式:
int[] x = new int[5]{5,4,3,2,1};//编译出错,不能在[]中指定数组的长度;
int[] x;
x = {5,4,3,2,1}; //{5,4,3,2,1}必须在声明数组变量的语句中使用,不能单独使用
五. 数组的边界:
1) 一个数组的下标从0开始,数组通过数组的对象引用变量的下标访问数组。
数组中第一个元素的索引为0, 第二元素的索引为1,
依次类推。如果一个数组长度是5,要访问最后一个数组元素可以通过
下标4来访问,如果通过下标5访问,超出了数组的边界,在运行时会抛出
ArrayIndexOutOfBoundsException。
2) 通过调用数组的length方法可以获得一个数组的元素个数(数组长度)。
所有Java数组都有一个length属性,表示数组的长度. 该属性只能读取,但是不能修改。