Java基础(流程控制语句、选择结构、循环结构、方法)

时间:2022-09-08 16:55:29
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------

一、流程控制语句

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、方法重载特点

与返回值类型无关,只看方法名和参数列表

在调用时,虚拟机通过参数列表的不同来区分同名方法。