(八)选择结构语句
1 if
1.1 格式1
if(表达式){
语句;
}
代码:
运行结果:
1.2 格式2
if(表达式){
语句1;
}else{
语句2;
}
代码:
运行结果:
1.3 格式3
if(表达式1){
语句1;
}else if(表达式2){
语句2;
}else if(表达式3){
语句3;
} ....
else{
语句n+1;
}
代码:
运行结果:
2 switch
格式:
switch(表达式){
case 选项1:
语句1;
break;
case 选项2:
语句2;
break ;
case 选项3:
语句3;
break ;
....
default:
语句n+1;
break ;
}
执行流程:表达式中的值依次和case后面的值进行比较,若一样则执行对应case后语句;如果上述都不匹配,则执行default后语句switch后面的表达式可以是:byte,int... enum(jdk5) String(jdk7)
注:每个case语句中都有一个break,若不写break,会出现"case穿透"
代码:
运行结果:
(九)循环控制语句
1 for
1.1 格式:
for(初始化语句;条件表达式;步长语句/控制体语句){
循环体语句;
}
1.2 执行流程
a 初始化语句给当前变量进行赋值
b 执行条件表达式语句,如果条件表达式语句成立,则执行循环体语句
c 循环体语句执行完毕之后,执行步长语句,再次执行条件表达式语句,如果成立,再一次执行循环体语句
d 一直到条件表达式语句不成立,循环结束
代码:
运行结果:
1.3 for循环的嵌套
代码:
运行结果:
2 while
2.1 格式
初始化语句;
while(条件表达式){
循环体语句;
步长语句;
}
代码:
运行结果:
2.2 while循环与for循环的区别
a 从内存角度考虑:for循环优于while循环,for循环语句结束之后,变量就会被Jvm里面GC(垃圾回收器)回收掉释放掉内存,内存空间不会消耗太多;while循环,可以访问那个变量,变量不会立即被回收掉。
b 从应用场景来考虑:明确范围/次数,使用for循环(优先考虑for循环,再考虑while);不知道循环多少次,这个时候使用while循环。
3 do-while
3.1 格式:
初始化语句;
do{
循环体语句;
步长语句;
}while(条件表达式) ;
代码:
运行结果:
3.2 do-while循环语句和for循环、while循环语句的区别?
a 从格式来讲:do-while循环语句循环体至少要执行一次
b 从应用场景来讲::如果要是使用循环语句,优先考虑for循环,然后while循环,其次do-while循环
4 死循环:循环语句控制的那个变量如果丢失了,或者少写了控制台语句,会造成死循环。
(十)跳转控制语句
1 break:中断,结束循环的意思,在循环语句以及switch语句中使用最多
2 continue:结束当前循环,立即进入一次循环,在循环语句中使用
3 return:和方法返回值有关
(十一)方法
1 有具体返回值
1.1 格式:
权限修饰符 静态修饰符 返回值 方法名(数据类型1 参数1,数据类型 参数2...){
return 结果;
}
1.2 方法的调用:
a 单独调用:没有具体结果
b 输出调用:不够好,容易将数据写死,直接输出,不能对结果进行一下步的需求
c 赋值调用(推荐使用):可以针对结果下一步需求操作
代码:
运行结果:
2 没有返回值
2.1 格式:
修饰符 返回值 方法名(形式参数类型1 变量名1, 形式参数类型2 变量名2....){
}
注:没有具体返回值,但是定义方法的格式是需要一个返回值,Java提供一个关键字void来代替返回值
代码:
运行结果:
3 方法重载(overload):定义多个方法时候,方法名相同,参数列表不同,并且与返回值无关
如何选择方法:通过判断参数个数、参数类型
代码:
运行结果:
(十二)数组:是一个容器(可以存储多个元素),这多个元素的数据类型必须一致
1 数组的定义:
a 数据类型[] 数组名称;
b 数据类型 数组名称[];
2 数组的初始化:
a 动态初始化:数据类型[] 数组名称= new 数据类型[长度] ;
b 静态初始化:数据类型[] 数组名称 =new 数据类型[]{元素1,元素2…}
c 简化格式:数据类型[] 数组名称 = {元素1,元素2,元素3….}
3 数组的应用
3.1 数组的基本遍历
代码:
运行结果:
3.2 数组的最值问题
代码:
运行结果:
3.3 数组元素的逆序
代码:
运行结果:
3.4 基本元素的查找
代码:
运行结果: