五、运算符
*算术运算符
*赋值运算符
*关系运算符
*逻辑运算符
*位运算符
*三目运算符
算术运算符
*+,-,*,/都是比较简单的操作
*+的几种作用:
加法
正数
字符串连接符
*除法的时候要注意一个问题:
整数相除,只能得到整数
要想得到小数,可以*1.0
赋值运算符
符号:
= , +=, -=, *=, /=, %=
=为基本的赋值运算符,其他的为扩展的赋值运算符
= 赋值号
+=加赋值
把左边和右边的结果赋值给左边。
注意:左边不能是常量
关系运算符
注意:
1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
2:比较运算符“==”不能误写成“=” 。
逻辑运算符
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
位运算符
位运算符是直接对二进制进行运算。
三目运算符
格式:
*(关系表达式)?表达式1:表达式2;
*如果条件为true,运算后的结果是表达式1;
*如果条件为false,运算后的结果是表达式2;
*表达式1和表达式2的最终结果是一个明确的值
六、流程控制语句
*顺序结构
*选择结构
*循环结构
顺序结构
概述:
*是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
*写在前面的先执行,写在后面的后执行。
顺序结构图
选择结构
概述:
*选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
*Java语言提供了两种选择结构语句
if语句
if(关系表达式) {
语句体;
}
执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
图解:
if(关系表达式) {
语句体1;
}else {
语句体2;
}
执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2
图解:
if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
执行流程
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false
…
如果没有任何关系表达式为true,就执行语句体n+1。
图解:
switch语句
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
概述:
switch表示这是switch语句
表达式的取值:byte,short,int,char,
JDK7以后可以是String
case后面跟的是要和表达式进行比较的值
语句体部分可以是一条或多条语句
break表示中断,结束的意思,可以结束switch语句
default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
流程:
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
图解:
注意:
case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
default可以省略。一般不建议。除非判断的值是固定的。
break可以省略,一般不建议。
default的位置可以出现在switch语句任意位置。
switch语句的结束条件
遇到break
执行到程序的末尾
使用场景:
if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断
循环结构
概述:
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句体,当反复执行这个循环语句体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
组成:
初始化语句:
一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:
这是一个boolean 表达式,这个表达式能决定是否执行循环语句体。
循环体语句:
这个部分是要被反复执行的语句,也就是我们要多次做的事情。
控制条件语句:
这个部分在一次循环执行结束后,下次判断循环条件是否成立前,会改变用于判断循环变量的值,使得循环在合适的时候结束。
for循环语句
格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句体;
}
执行流程:
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
图解:
注意:
判断条件语句的结果是一个boolean类型
循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
一般来说:有左大括号就没有分号,有分号就没有大括号
while循环语句
格式:
基本格式:
while(判断条件语句) {
循环体语句体;
}
扩展格式:
初始化语句;
while(判断条件语句) {
循环体语句体;
控制条件语句;
}
图解:
for循环和while循环的区别
使用区别:
控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
场景区别:
for循环适合针对一个范围判断进行操作
while循环适合判断次数不明确操作
do…while循环语句格式
基本格式
do {
循环体语句;
}while(判断条件语句);
扩展格式
初始化语句;
do {
循环体语句;
控制条件语句;
} while(判断条件语句);
图解:
三种循环语句的区别及注意事项
使用场景:
do...while循环语句体至少会执行一次
for循环和while循环只有在条件成立的时候才会执行循环语句体
推荐使用:
对固定范围内的循环推荐使用for
对未知的范围内的循环推荐使用while
对至少需要执行一次循环语句体的推荐使用do...while
如下代码是死循环
while(true){ }
for( ; ; ){ }
跳转控制语句
break 中断
break的作用:
跳出单层循环
break的使用场景:
在选择结构switch语句中
在循环语句中
离开使用场景的存在没有任何意义
continue 继续
continue的作用:
continue 退出本次循环
continue的使用场景:
在循环语句中
离开使用场景的存在是没有意义的
return 返回
return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法。
结束循环其实是结束了main方法