1.方法的定义。
方法:就是将一个功能抽取出来,把代码单独定义在一个大括号中,形成一个单独的功能。这样,当我们需要反复用到这个功能时,可以直接调用,体现代码的复用性。
定义: 调用:
注意:
(1)方法的定义先后顺序无所谓。
(2)方法的定义不能产生嵌套包含关系。
(3)方法定义好了,不会执行的,如果想要执行,要对该方法进行【调用】
2.编译器的两点优点
(1)对于byte、short、char三种类型来说,如果右侧赋值的数值没有超过范围,那么javac编译器会自动隐含地为我们不上一个(byte)(short)(char)这样的强制类型转换。如果超过了左侧的范围,那么直接编译器报错。
(2)在给变量进行赋值时,如果右侧的表达式中全部都是常量,没有任何变量,那么编译器javac将会直接将若干个常量表达式直接计算出结果。(只针对全常量)
对比:
short a=5;
short b=6;
short result = a+b; //这种写法会报错,因为在计算前编译器会将short类型转为int计算,short+short ->int + int -> int
short result = 5+6; //这种写法是正确的,右侧全是常量,在编译过程中就是直接被计算成11,相当于short result =11;
3.判断语句--if语句
格式1:if(关系表达式){语句体;} //先判断关系表达式,true就执行语句体;false就不执行。
格式2:if(关系表达式){语句体1;} else{语句体2;} //判断关系表达式,true执行语句体1;false执行语句体2.
格式2:if(关系表达式1){语句体1;} else if(关系表达式2){语句体2;}.... else{语句体n;}//顺序判断,关系表达式1true,就执行语句体1,否则判断关系表达式2,依次向下,如果上面的关系表达式都是false,就执行else中的语句体n。
4.选择语句--switch语句
格式:
注意:
(1)多个case后面的数值不可以重复。
(2)switch后面小括号当中只能是下面的数据类型:基本数据类型(byte,short,char,int),引用数据类型(String字符串,enum枚举)。
(3)switch语句格式可以很灵活,前后的顺序可以颠倒,而且break语句可以不写。(但是这样就会顺序执行下面的语句体,直到遇到break跳出,这是switch语句的穿透性)
5.循环语句
(1)for循环,格式:for(初始化表达式①;布尔表达式②;步进表达式③){循环体④;}
执行流程:1243->243->243...2不满足为止(①是在首次进入循环时,初始化变量;②用来判断当前是否满足循环条件,不满足就跳出;④是在当前循环中需要操作的步骤;③是每次循环后,循环条件所涉及的变量的变化情况)
(2)while循环。
标准格式:
while(条件判断){循环体;}(先判断是否满足条件,满足则进入循环体,然后在判断条件,直到不满足跳出循环)
扩展格式:
初始化语句;
while(条件判断){循环体;步进语句;}
图解:
(3)do...while循环
标准格式:do{循环体;}while(条件判断);
扩展格式:
初始化表达式;
do{循环体;步进表达式;}while(布尔表达式);
图解:
注意:
(1)for循环应用的场景,大多数情况都可以用while和do..while去替换。for循环多使用次数确定的场景,否则多用while循环。
(2)while和do..while的区别,while会先判断再循环;do...while会先执行一次,再判断,之后都是先循环后判断。
(3)for循环定义的初始化变量是局部变量,只能在循环内使用,while和do..while初始化语句在循环体外,所以作用域更广。
(4)循环控制break和continue
①break
可以用在switch语句中,一旦执行,整个switch语句就会立刻结束。
可以用在循环语句中,一旦执行,整个循环语句立刻结束,打断循环。
②continue
一旦执行,立刻跳出当前次循环,马上开始下一次循环。
(5)死循环
标准格式: while(true){循环体;}
注意:死循环后的语句有可能会无法执行,导致错误。
(6)嵌套循环
定义:一个循环的循环体是另一个循环,比如在for循环里还有一个for循环,这就是嵌套循环。总的循环次数=外循环次数*内循环次数。