一、流程控制语句
1、 概述:
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。
也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句
的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
2、流程控制语句分类
A:顺序结构
B:选择结构
C:循环结构
3、不同语句的执行顺序
A:顺序结构 从上往下,依次执行
B:选择结构按照不同的选择,执行不同的代码
C:循环结构 做一些重复的代码
二、选择结构(if语句)
1、 Java语言提供了两种选择结构语句
A: if语句
B: switch语句
2、 if语句有三种格式
A: 格式一:
if(比较表达式){
语句体;
}
执行流程:
判断比较表达式的值,看是true还是false
如果是true,就执行语句体,
如果是false,就不执行语句体。
B:格式二:
if(比较表达式){
语句体1;
}else {
语句体2;
}
执行流程:
判断比较表达式的值,看是true还是false
如果是true,就执行语句体1
如果是false,就执行语句体2
C:格式3
if(比较表达式1){
语句体1;
}else if(比较表达式2){
语句体2;
}
...
else {
语句体n+1;
}
执行流程:
判断比较表达式1的值,看是true还是false
如果是true,就执行语句体1
如果是false,就继续判断比较表达式2的值,看是true还是false
如果是true,就执行语句体2
如果是false,就继续判断比较表达式3的值,看是true还是false
...
如果都不满足,就执行语句体n+1。
3、注:关系表达式无论简单还是复杂,结果必须是boolean类型
if语句控制的语句体如果是一条语句,大括号可以省略,
如果是多条语句,就不能省略。建议永远不要省略。
一般来说,有左大括号,就没有分号,有分号,就没有左大括号。
3、选择结构(switch语句)
1、格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
2、格式解释说明:
switch:说明这是switch语句。
表达式:可以是byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是字符串
case:后面的值就是要和表达式进行比较的值
break:表示程序到这里中断,跳出switch语句
default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else。
3、执行流程:
A:首先计算表达式的值
B:和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。
C:如果没有匹配,就执行default的语句体n+1。
4、注意事项:
A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
B:default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
特殊情况:
case就可以把值固定。
A,B,C,D
C:break可以省略吗?
可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不要省略
D:default一定要在最后吗?
不是,可以在任意位置。但是建议在最后。
E:switch语句的结束条件
a:遇到break就结束了
b:执行到末尾就结束了
四、if语句和switch语句各自的场景
A:if
针对boolean类型的判断
针对一个范围的判断
针对几个常量的判断
B:switch
针对几个常量的判断
五、循环结构(for语句)
1、循环结构概述
循环结构:循环语句可以在满足循环条件的情况下,反复执行某一段代码,
这段被重复执行的代码被称为循环体语句,当反复执行这个循
环体时,需要在合适的时候把循环判断条件修改为false,从而
结束循环,否则循环将一直执行下去,形成死循环。
2、循环结构有三种循环语句:for,while,do...while
3、循环语句的组成
A:初始化语句:
一条或者多条语句,这些语句完成一些初始化操作。
B: 判断条件语句:
这是一个boolean 表达式,这个表达式能决定是否执行循环体。
C:循环体语句:
这个部分是循环体语句,也就是我们要多次做的事情。
D:控制条件语句:
这个部分在一次循环体结束后,下一次循环判断条件执行前执行。
通过用于控制循环条件中的变量,使得循环在合适的时候结束。
4、for循环语句格式
A:格式
for(初始化语句;判断条件语句;控制条件语句){
循环体语句;
}
B:执行流程:
a:执行初始化语句
b:执行判断条件语句
如果这里是true,就继续
如果这里是false,循环就结束
c:执行循环体语句
d:执行控制条件语句
e:回到b
C:注意事项
a:判断条件语句无论简单还是复杂,结果是boolean类型
b:循环体语句如果是一条,可以省略大括号,但是不建议
c:有分号就没有左大括号,有左大括号就没有分号
e:初始化表达式语句只执行一次
六、循环结构(whlie语句)
1、while循环语句格式:
A:基本格式
while(判断条件语句) {
循环体语句;
}
B:扩展格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
C:for循环语句和while循环语句区别
a:for循环语句和while循环语句可以等价转换,但还是有些小区别的。
b:使用区别:
控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,
而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。
原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
c:场景区别:
for循环适合针对一个范围判断进行操作
while循环适合判断次数不明确操作
七、循环结构(do...whlie语句)
1、do...while循环格式
A:基本格式
do {
循环体语句;
}while(判断条件语句);
B:扩展格式:
初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
2、三种循环的区别
A:三种循环语句其实都可以完成一样的功能,也就是说可以等价转换。
B:但还是有小区别的:
a:do…while循环至少会执行一次循环体。
b: for循环和while循环只有在条件成立的时候才会去执行循环体
C:循环使用的注意事项(死循环)
A:一定要注意修改控制条件,否则容易出现死循环。
B:最简单的死循环格式
a:while(true){...}
b:for(;;){}
八、控制跳转语句
1、概述;
前面我们已经说过了,Java中的goto是保留字,目前不能使用。虽然没有goto语句
可以增强程序的安全性,但是也带来很多不便,为了弥补这个缺陷,Java就提供了break,
continue和return来实现控制语句的跳转和中断。
2、控制跳转语句的分类
A:break:中断的意思
a:用在循环和switch语句中,离开此应用场景无意义。
b:作用
跳出单层循环
跳出多层循环,需要标签语句的配合
B:continue:继续
A:用在循环中,离开此应用场景无意义。
B:作用
a:跳出单层循环的一次,可以继续下一次
C:return:返回
A:return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,
也就是退出一个方法。跳转到上层调用的方法。
B:一旦遇到return,程序就不会在继续往后执行。
九、方法
1、方法的概述
假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹(植物大战僵尸)。发射炮弹的动作需要编写100行的代码,
在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样程序会变得很臃肿,可读性也非常差。为了解决代码
重复编写的问题,可以将发射炮弹的代码提取出来放在一个{}中,并为这段代码起个名字,这样在每次发射炮弹的地方
通过这个名字来调用发射炮弹的代码就可以了。上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法,
程序在需要发射炮弹时调用该方法即可。
2、方法的定义及格式
A:方法:就是完成特定功能的代码块。
注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法。
B:格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
方法体语句;
return 返回值;
}
C: 方法格式解释
修饰符:目前就用 public static。后面再详细讲解其他修饰符
返回值类型:就是功能结果的数据类型
方法名:就是起了一个名字,方便我们调用该方法。
参数类型:就是参数的数据类型
参数名:就是变量
参数分类:
实参:实际参与运算的数据
形参:方法上定义的,用于接收实际参数的变量
方法体语句:就是完成功能的代码块
return:结束方法
返回值:就是功能的结果,由return带给调用者。
D:两个明确:
返回值类型:结果的数据类型
参数列表:参数的个数及对应的数据类型
E:方法调用
a:有明确返回值的方法
单独调用,没有意义
输出调用,不是很好,因为我可能需要不结果进行进一步的操作。但是讲课一般我就用了。
赋值调用,推荐方案
b:void类型修饰的方法
单独调用
F:方法的注意事项
a:方法不调用不执行
b:方法之间是平级关系,不能嵌套定义
c:方法定义的时候,参数是用" ,"隔开的
d:方法在调用的时候,不用在传递数据类型
e:如果方法有明确的返回值类型,就必须有return语句返回
十、方法的重载
1、方法重载概述
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
2、方法重载特点
与返回值类型无关,只看方法名和参数列表
在调用时,虚拟机通过参数列表的不同来区分同名方法。
Java基础(流程控制语句、选择结构、循环结构、方法)
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------