Java(二)
一、流程控制语句分类:
1.顺序结构(按照代码的先后顺序,依次执行)
2.分支结构(if,switch)
3.循环结构(for,while,do…while)
二、if语句:
格式一:
if (关系表达式){
语句体;
}
格式二:
if (关系表达式){
语句体;
}else {
语句体;
}
格式三:
if (){
语句体;
}else if (){
语句体;
}…else {
语句体n+1;
}
注意事项:
数据测试时,要用到这三种数据:正确数据,边界数据,错误数据
三、switch语句:
格式:
switch (){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
……
default:
语句体n+1;
//这里的break可以省略,不影响程序运行。
}
格式说明:
表达式:取值byte、short、int、char,jdk5以后可以是枚举,jdk7以后可以是String.
case:后面跟的是要和表达式进行比较的值
break:表示中断、结束的意思,用来结束switch语句
default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
注意事项:
case穿透:在switch语句中,如果case控制的语句体后面忘了写break;将会出现穿透现象,在不判断下一个case值的情况下,向下运行,直到遇到break;或者整体switch语句结束。
四、循环结构:
特征:
1.重复做某事
2.具有明确的开始和停止标志
组成:
由初始化语句、条件判断语句、循环体语句、条件控制语句组成。
for语句格式:
for (初始化语句、条件判断语句、条件控制语句){
循环体语句
}
while循环语句格式:
基本格式:
while(条件判断语句){
循环体语句;
}
完整格式:
while (条件判断语句){
条件控制语句;
循环体语句
}
do while语句基本格式:
do{
循环体语句;
}while(条件判断语句);
完整格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
三种循环语句的区别:
for循环和while循环先判断条件是否成立,然后决定是否执行循环体;(先判断后执行)
do……while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体;(先执行后判断)
for和while的区别:
条件控制语句所控制的自增变量,因为归属for循环的语法结构中;在for循环结束后,就不能再一次被访问到了
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。
五、跳转控制语句
continue:用于在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
break: 用于在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环体
分支语句中包含分支语句称为分支嵌套
循环语句中包含循环语句称为循环嵌套
Random:
作用:用于产生一个随机数
使用步骤:
1.导包: import java.util.Random;
2.创建对象: Random r = new Random;
3.获取随机数: int number = r.nextInt(10);//取值:【0,10】
六、数组
数组概述:
一次性声明大量的用于存储数据的变量,要存储的数据通常都是同类型数据。如:考试成绩数据
什么是数组?
数组是一种用于存储多个相同类型的存储模型
格式一: 数据类型【】 变量名 例:int[] arr;
定义了一个int类型的数组,数组名是arr
格式二: 数据类型 变量名【】 例:int arr[];
定义了一个int类型的变量,变量名是arr数组
数组初始化概述:
Java中的数组必须先初始化,然后才能使用
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值
数组初始化有:动态初始化,静态初始化
动态初始化: 初始化时只指定数组长度,由系统为数组分配初始值
格式: 数据类型【】 变量名 = new 数据类型 【数组长度】;
例: int[] arr = new int[3];
说明: arr为数组名称 3:代表数组长度,也就是数组个数
数组变量访问方式:
格式: 数组名
数组内部保存的数据的访问方式:
格式: 数组名【索引】
静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度
格式: 数据类型【】 变量名 = new 数据类型【】{数据1,数据2,数据3…}
例: int[] arr = new int[]{1,2,3};
简化格式: 数据类型【】 变量名 = {数据1,数据2,数据3…}
例: int[] arr = {1,2,3};
数组操作的常见小问题:
索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题
空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常
null:空值,引用数据类型的默认值,表示不指向任何有效对象
数组常见操作:
1.遍历:利用for循环输出数组中的内容
遍历通用格式:
int[] arr = {1,2,3……}
for(int x = 0; x < arr.length;x++){
arr[x] //对arr进行操作
}
2.获取数组元素数量:
格式: 数组名 .length 例:arr.length
七、内存分配
栈内存:存储局部变量
定义在方法中的变量, 如: arr 使用之后,立即消失
堆内存:存储new出来的内容(实体、对象)数据在初始化时,会为存储空间添加默认值
每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收
八、方法
方法是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
注意:
1.方法必须先创建才可以使用,该过程称为方法定义
2.方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用
方法定义:
格式:
public static void 方法名(){
//方法体
}
方法调用格式: 方法名()
注意:
方法必须先定义后调用,否则程序将报错