方法
方法入门
-
概述:
方法就是将一个功能抽取出来,把代码单独定义在一个大括号里,形成一个单独的功能;当我们需要这个功能的时候,就可以去调用。这样既实现了代码的复用性,也解决了代码冗余的现象。 -
方法的定义:
public static void 方法名称(){ 方法体 }
方法名称的命名规则和变量一样,使用小驼峰。
方法体也就是大括号当中可以包含任意条语句 -
注意事项:
- 方法定义的先后顺序无所谓
- 方法的定义不能产生嵌套包含关系
- 方法定义好了之后,不会执行。如果想要执行,一定要进行方法的调用
-
如何调用方法,格式: 方法名称();
编辑器的两点优化:
对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,那么javac编译器会自动隐含的为我们补上一个(byte)(short)(char)
- 如果没有超过左侧的范围,编译器补上强转
- 如果右侧超过了左侧范围,那么直接编译报错
在给变量进行赋值的时候,如果右侧的表达式当中全部都是常量,没有任何变量,那么编译器javac将会直接将若干个常量表达式计算的到结果。
short result = 5 + 8 ;
编译之后,得到的.class字节码文件当中相当于【直接就是】
short result = 13;
右侧的常量结果数值,没有超过左侧范围,所以编译正确。、
这称为“编译器的常量优化”,但注意:一旦表达式中有变量参与,那么就不能进行这种优化了
流程控制语句
-
流程控制 (顺序结构)
-
判断语句
- if 语句
- if …else 语句
- if … else if … else语句
-
选择语句
switch(表达式){ case 常量值1: 语句体1; break; case 常量值2: 语句体2; break; .... default: 语句体n+1; break; }
switch语句使用的注意事项:
-
多个case后面的数值不可以重复
-
switch后面小括号当中只能是下列数据类型:
- 基本数据类型:byte/short/char/int
- 引用数据类型:String字符串、enum枚举
-
switch语句格式灵活:前后顺序可以颠倒,而且break语句可以省略
“匹配哪一个case就从哪一个位置向下执行,知道遇到了break或者整体结束为止”—case的穿透性
-
-
循环语句:
- for循环
for(初始化语句;条件判断;步进语句){ 循环体 }
- while循环
初始化语句;
while(判断语句){
循环体;
步进语句;
}
- do···while循环(先执行后判断)
初始化语句;
do{
循环体;
步进语句;
}while(条件判断)
循环结构的基本组成部分,一般分为四个部分:
- 初始化语句:在循环开始最初执行,而且只做唯一一次
- 条件判断:如果成立,则循环继续;如果不成立,则循环退出。
- 循环体:重复要做的事情内容,若干行语句。
- 步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次
三种循环语句的区别:
- 如果条件判断从来就没有满足过,那么for循环和while循环将会执行0次,但do…while循环至少会执行一次
- for循环的变量在小括号中定义,只有在循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以出来循环之后一样可以使用。
循环控制:
-
break关键字:
- 可以用在switch语句当中,一旦执行,整个switch语句立刻结束
- 还可以在循环语句中,一旦执行,整个循环语句立刻结束—打断循环
关于循环的选择,一个小小的建议:
凡是次数确定的场所多用for循环;否则多用while循环。
-
continue关键字:
一旦执行,立刻跳过当前次循环剩余内容,马上进入下一次循环。
死循环 : (注意事项:死循环后面的语句永远执行不到,会报错:无法访问!)
while(true){
循环体;
}