JAVA运算符
●算术运算符: +,-,*,/,%(取余),++(自加),-- (自减)
注意:形如++a,–a的先执行自加或自减,然后用新值去运算。形如a++,a–的先用原来的值去运算,然后进行自加或自减。
●字符串连接运算符:+
例1:“HE”+“LLO” 结果:“HELLO”
例2 :int i1=10 ;
int i2=10
System.out.println("i1+i2="+i1+i2);
此结果为: i1+i2=1010
●关系(比较)运算符: >(大于),<(小于),>=(大于等于),<=(小于等于),==(相等于),!= (不等于)
此运算符判断的值是一个逻辑类型的值true或false
●逻辑运算符: !(逻辑非),&(逻辑与) , |(逻辑或) , &&(短路与),|| (短路或),^ (逻辑异或) 。
重点:"&“和”&&","|" 和"||"的区别:
"&"时,所有的逻辑判断都执行完,全真为真,有假为假。
"&&"时,如果碰到一个false,则发生短路,后边不执 行,输出值为false,否则为true。
"|"时,所有的逻辑判断都执行完,有真为真,全假为假。
"||"时,如果碰到一个true,则发生短路,后边不执行,输出值为true,否则为false。
●赋值运算符: = ,+ =,- =,* =,/ =
例: a+=b 等效的表达式:a=a+b
注意:如果数据类型不相同,赋值运算符里会存在隐式转换,转换的类型会和最后赋值的数据类型一致。
●条件运算符 : (条件表达式)? 表达式1:表达式2
为true,运算后的结果是表达式1;
为false,运算后的结果是表达式2;
注意:表达式1和表达式2为同种类型
●位运算符:<<(左移位)>> (右移位) >>>(无符号右移) &(按位与) | (按位或) ^(按位异或) ~(按位非)
例:010(2)<<1 为 100(4)
注意:整体移位,不是循环的,符号位不移,>>>除外
向左移n,是*(2^n)
向右移n,是/(2^n)
例:按位或
0000 0110
0000 0011
结果:0000 0111
运算符优先级:
循环结构
●if条件结构:if(判断条件){
语句;
}else{
语句;
}
●switch语句:switch(表达式){
case 表达式1:{
语句;
}
case 表达式2:{
语句;
}
…
default:语句;
}
case表达式可以是byte、short、int、char、枚举类型。可以使用String类 型;case语句后面只能使用常量表达式; case后的值不能重复; 某个case分支如果没有提供break语句,则继续执行下一个case后的语句; 当表达式的值与任一case子句中的值都不匹配时,将执行default后面的语句;如果 没有default子句,则程序直接跳出switch语句。
●while和do while语句:1. while(逻辑表达式)
{
语句;
}
2. do
{
语句;
}while(逻辑表达式);
●for循环语句:for(表达式1;表达式2;表达式3)
{
语句;
}
●加强for循环:for (int t:a) {
System.out.print(t+"\t");
}
此循环可用于数组的遍历
执行过程:首先计算表达式1,接着执行表达式2,若表达式2的值 = true,则执行循环语句, 接着计算表达式3,再判断表达式2的值;依此重复下去,直到表达式2的值=false
●break和continue:
break:
int x=3;
for(int i=1;i<=10;i++)
{
if(i==x)
{
break;//break会结束所包含break的那一个循环
}
System.out.println("i="+i);
}
运行结果:i = 1
i = 2
如果需要从多层循环跳出,则需要使用标签,定义一个标签,例如:
out:for(int i=1;i<10;i++) //out就为一个标签,标签可以随意定义
{
for(int j=1;j<10;j++)
{
for(int k=1;k<10;k++)
{
System.out.print("k="+k+"\t");
break out;//终止了所有循环
}
}
}
运行结果为:k=1
continue:
int x=3;
for(int i=1;i<=5;i++)
{
if(i==x)
{
continue;//continue用在循环体中,用于终止某次循环过程,循环不终止
}
System.out.println("i="+i);
}
运行结果:
i = 1
i = 2
i = 4
i = 5
●return 语句
return语句用于从当前执行的方法中退出, 返回到调用该方法的语句处继续执行。
有两种格式:
- return + 表达式; //将表达式的值返回
- return; //不返回任何值。