一、流程控制语句分类:
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 方法名(){
//方法体
}
方法调用格式: 方法名()
注意:
方法必须先定义后调用,否则程序将报错
带参数方法定义:
格式:
public static void 方法名(参数){
……
}
单参格式:
public static void 方法名(数据类型 变量名){
……
}
例:
public static void isEvenNumber(int number){
……
}
多参:
public static void 方法名(数据类型1 变量名1,数据类型2 变量名2……){
……
}
注意:
方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
方法定义时,多个参数之间使用逗号(,)分隔
带参调用:
格式: 方法名(参数);
单参: 方法名(变量名/常量值); isEvenNumber(5);
多参: 方法名(变1/常1,变2/常2……); getMax(5,6);
注:
方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错
九、形参和实参
形参:方法定义中的参数 等同于变量定义格式 例: int number
实参:方法调用中的参数 等同于使用变量或常量 例: 10 number
注意:
调用方法的时候,人家要几个,你就给几个,人家要什么类型,你就给什么类型
带返回值方法定义:
格式:
public static 数据类型 方法名(参数){
return 数据;
}
注意:
方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
带返回值方法调用:
格式1: 方法名(参数); 例: isEvenNumber(5);
格式2(常用): 数据类型 变量名 = 方法名(参数);
Boolean flag = isEvenNumber(5);
注:
方法的返回值通常会使用变量接收,否则该返回值将无意义
方法的注意事项:
1.方法不能嵌套定义
2.void表示返回值,可以省略return,也可以单数的书写return,后面不加数据
方法的通用格式:
public static 返回值类型 方法名(参数){
方法体;
return;
}
返回值类型:方法操作完毕之后返回数据的数据类型,如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return
方法名:调用方法时使用的标识
参数:由数据类型和变量名组成,多个参数之间用逗号隔开
方法体:完成功能的代码块
return:如果方法操作完毕,有数据返回,用于把数据返回给调用者
定义方法时,要做到两个明确:
明确返回值类型L主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型
明确参数:主要是明确参数的类型和数量
调用方法时:
void类型的方法,直接调用即可
非void类型的方法,推荐使用变量接收调用
方法重载:
方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载:
1.多个方法在同一个类中
2.多个方法具有相同的方法名
3.多个方法的参数类型不相同,类型不同或者数量不同
特点:
重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载
与返回值无关,在调用的时候,Java虚拟机会通过参数不同来区分同名的方法
方法参数传递(基本类型):
对于基本数据类型的参数,形式参数的改变,不影响实际参数的值
方法参数传递(引用类型):
对于引用类型的参数,形式参数的改变,影响实际参数的值
十、Debug
Debug:是提供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
Debug操作流程:
Debug调试,又被称为断点调试,断点其实是一个标记,告诉我们从哪里开始查看
加断点,在代码行左边行号后单击鼠标左键,再单击,则是删除该断点
运行:右键Debug执行
看Debug窗口,Console窗口。
点Step Into(F7)这个箭头,也可以直接按F7运行下一步
点Stop结束
Debug使用:
查看方法调用的执行流程
注意事项:
如果数据来自于键盘输入,一定要记住输入数据,不然就不能继续往下看了
浙公网安备 33010602011771号