表达式
在Java中,表达式是由运算符和操作数组成的。
比如,我们可以把下面的都称为表达式:
5
num1
num1+num2
sum=num1+num2
运算符
Java的运算符包括:算术运算符、赋值运算符、关系运算符、逻辑运算符、条件运算符、位运算符。
如下图所示:
算术运算符
算术运算符主要用于进行基本的算术运算,如加法、减法、乘法和除法等。
public class MathDemo {
public static void main(String[] args) {
int num1=10,num2=5;
int res; //存放结果
//加法
res = num1 + num2;
System.out.println(num1+"+"+num2+"="+res); // 10+5=15
//注意区分是否为字符串连接
System.out.println(num1+num2); //15
System.out.println(""+num1+num2); // 105
//减法
res = num1 - num2;
System.out.println(num1+"-"+num2+"="+res); // 10-5=5
//乘法
res = num1*num2;
System.out.println(num1+"*"+num2+"="+res); // 10*5=50
//除法
res = num1/num2;
System.out.println(num1+"/"+num2+"="+res); // 10/5=2
//分子分母都是整型时,结果为整除后的结果
System.out.println(13/5); //2
System.out.println(13.0/5); //2.6
//求余数
res = 13%num2;
System.out.println("13%"+num2+"="+res); //13%5=3
System.out.println("13.5%"+num2+"="+13.5%num2); //13.5%5=3.5
}
}
自增自减运算符
++ 自增1 int n=3; n++; int n=4; ++n;
-- 自减1 int n=3; n--; int n=4; --n;
public class MathDemo1 {
public static void main(String[] args) {
//x++
int x = 4;
int y = (x++)+5;
System.out.println("x="+x+",y="+y); //x=5,y=9
//++x
x = 4;
y = (++x)+5;
System.out.println("x="+x+",y="+y); //x=5,y=10
//x--
x = 4;
y = (x--)+5;
System.out.println("x="+x+",y="+y); //x=3,y=9
//--x
x = 4;
y = (--x)+5;
System.out.println("x="+x+",y="+y); //x=3,y=8
}
}
赋值运算符
格式:变量=表达式;
例:int n=3; //将3赋值给变量n
注意:赋值运算符是从右往左运算!
double d=123.4; double d1=d;
错误的写法:double d; 123.4=d;
注意:赋值运算符的左边不能是常量!
复合赋值运算符
关系运算符
比较运算符用于判断两个数据的大小,如大于、小于、等于。
比较的结果是一个布尔值。
注意:运算符必须在英文输入法状态下输入。
例:
'A' > 'B' 结果为false,比较的是两个字符的ASCII值;
5!=6 结果为true,比较两个数值是否相等;
true == false 结果为false , 两个布尔值不相等;
float f = 5.0f; long l = 5; f==l; 结果为true,浮点数与整数进行比较,只要值相等就返回true。
关系运算符主要用于条件语句和循环语句中的判断条件。而条件结构就是根据不同的条件去执行不同的操作。
条件结构
对于条件结构,我们需要注意两点:
1)如果 if 或 else 语句后面只有一条语句,可以不加大括号,否则必须加大括号;
2)if后面小括号中的表达式结果必须是布尔值。
简单if语句的格式:
if(条件为true){
<语句块>
}
if-else语句的形式
if(条件为true){
<语句块>
} else {
<语句块>
}
public class ConditionDemo {
public static void main(String[] args) {
//例:判断一个整数是奇数还是偶数,并将结果打印输出
//从键盘接收数据
System.out.println("请输入一个整数:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
if (n%2 == 0) {
System.out.println(n+"是偶数");
} else {
System.out.println(n+"是奇数");
}
}
}
逻辑运算符
逻辑运算符用来连接一个或多个条件,并判断这些条件是否成立。
逻辑运算符的结果是布尔类型。
注意:逻辑运算符的操作数都是布尔类型的。
逻辑“与”运算符
我们可以用 & 和 && 表示逻辑与。
& 和 && 使用的时候是有区别的,我们通过下面的例子进行说明:
&运算符
int n=3;
boolean b= (3>7) & ((n++) < 2) 问:b=?,n=?
结果 b=false n=4
&&运算符
int n=3;
boolean b= (3>7) && ((n++) < 2) 问:b=?,n=?
结果 b=false n=3
&&运算符又叫短路运算符,如果第一个表达式的值就能决定表达式最后的结果,运算符右边的表达式就不再计算了。
逻辑“或”运算符
我们可以用 | 和 || 表示逻辑或。同样的, | 和 || 使用的时候也是有区别的。
|运算符
int n=3;
boolean b= (3<7) | ((n++) < 2) 问:b=?,n=?
结果 b=true n=4
||运算符
int n=3;
boolean b= (3<7) || ((n++) < 2) 问:b=?,n=?
结果 b=true n=3
||运算符又叫短路运算符,如果第一个表达式的值就能决定表达式最后的结果,运算符右边的表达式就不再计算了。
逻辑“非”运算符(!运算符)
该运算符对原条件的结果进行取反。
例:!(3<5) ,结果为 false 。
条件运算符
Java中的条件运算符是三目运算符。
语法:
布尔表达式?表达式1 : 表达式2
当布尔表达式的值为true,则返回表达式1的值,否则返回表达式2的值。
如:
String word = (3 < 5) ? "Yes" : "No"; //word值为 Yes
运算符的优先级
当一个表达式中出现多个运算符时,我们需要根据运算符的优先级,来确定表达式的执行顺序。
Java中的运算符优先级如下图所示,根据左侧的箭头指向,运算符的优先级从高到低: