- 六、运算符
- 比较运算符
1、比较运算符的结果都是boolean型,也就是要么是true,要么是false。
2、比较运算符“==”不能误写成“=”。
class OperatorDemo
{
public static void main(String[] args){
System.out.println( 3 > 2 );//true
System.out.println( 3 == 2 );//false
}
}
- 逻辑运算符
逻辑运算符用于连接两个boolean类型的表达式。
"&"符号运算规律:
运算的两边只要有一个是false,结果肯定是false。
只有两边都为true,结果才是true。
"|"符号运算规律:
运算的两边只要有一个是true,结果肯定是true。
只有两边都为false,结果是false。
"^"符号运算规律:
^符号的两边结果如果相同,结果是false。
两边的结果不同,结果是true。
"!"符号运算规律:
!true=false
!false=true
!!true=true
P.S.
&&:和&运算的结果是一样的,但是运算过程有点小区别。
&:无论左边的运算结果是什么,右边都参与运算。
&&:当左边为false时,右边不参加运算,这样可以提升效率。
||:和|运算的结果是一样的,但是运算过程有点小区别。
|:无论左边的运算结果是什么,右边都参与运算。
||:当左边为true时,右边不参加运算,这样可以提升效率。
使用&&和||比使用&和|更高效一些。
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3&x<6。
- 位运算符
与运算例子:
6&3=2
110
& 011
-------
010
常见的面试题:
最有效率的方式算出2乘以8等于几?
答:2 << 3
- 三元运算符
格式:
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2。
// 取三个数中最大的
class OperatorDemo
{
public static void main(String[] args){
int o = 4,p = 5,q = 10;
int temp = o > p ? o : p;
int max = temp > q ? temp : q;
System.out.println( max );//10
}
}
- 七、程序流程控制
- 判断结构
if语句
格式一:
if(条件表达式)
{
执行语句;
}
格式二:
if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
格式三:
if(条件表达式)
{
执行语句;
}
elseif(条件表达式)
{
执行语句;
}
……
else
{
执行语句;
}
- 选择结构
switch语句
格式:
switch(表达式)
{
case取值1:
执行语句;
break;
case取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
switch语句特点:
1、switch语句选择的类型只有四种:byte,short,int,char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇
到break或者switch结尾结束。
5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case
上面,执行顺序也不变。
public class Test {
public static void main(String args[]){
//char grade = args[0].charAt(0);
char grade = 'C';
switch(grade)
{
case 'A' :
System.out.println("优秀");
break;
case 'B' :
case 'C' :
System.out.println("良好");
break;
case 'D' :
System.out.println("及格");
break;
case 'F' :
System.out.println("你需要再努力努力");
break;
default :
System.out.println("未知等级");
}
System.out.println("你的等级是 " + grade);
}
}
//良好
//你的等级是 C
对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对高。
- 循环结构
格式1
while(条件表达式)
{
执行语句;
}
格式2
do
{
执行语句;
}while(条件表达式);
while和dowhile的区别:
dowhile语句的特点:无论条件是否满足,循环体至少执行一次。
while如果条件不满足,循环体一次都不会执行。
格式3
for语句格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;(循环体)
}
最简单无限循环格式:while(true),for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
- 其他流程控制语句
break(跳出),continue(继续)
break语句:
应用范围:选择结构和循环结构。
continue语句:
应用范围:循环结构。
continue语句是结束本次循环继续下次循环。