概述
表达式
- 表达式由 运算符 和 操作数 组成
- 如:num1 + num2 就是一个表达式,其中加号就是运算符,num1、num2就是操作数
- sum = num1 + num2;多步运算,先加后赋值
运算符
- 运算符包括:算术运算符、赋值运算符、关系运算符、逻辑运算符、逻辑运算符、条件运算符、位运算符
算数运算符和赋值运算符
一般算术运算符
eg:
public static void main(String[] args) {
int num1 = 13, num2 = 5;
int result;
// 加法
result = num1 + num2;
System.out.println(num1+"+"+num2+"="+result);
// 字符串连接
System.out.println(""+num1+num2);
// 减法
result = num1 - num2;
System.out.println(num1+"-"+num2+"="+result);
// 乘法
result = num1 * num2;
System.out.println(num1+"*"+num2+"="+result);
// 除法(整数
result = num1 / num2;
System.out.println(num1+"/"+num2+"="+result);
// 分子分母都是浮点型,结果就是浮点型
System.out.println(1.0/10);
// 分子分母都是整型,结果就是整型
System.out.println(num1+"/"+num2+"="+result);
// 取余(整数
num2 = 6;
result = num1 % num2;
System.out.println(num1+"%"+num2+"="+result);
}
}
自增运算符
赋值运算符
- 格式: 变量 = 表示式;
- eg: int n = 3;
- 注意: 赋值运算符是从右往左运算的
复合赋值运算符
关系运算符
比较运算符
- 用于判断两个数据的大小,如大于
- 比较的结果是一个布尔值
简单的条件结构
- 格式: f(条件判断){ ...语句块... }
- eg:
public class IfExample { public static void main(String[] args) { int good1 = 50; int good2 = 60; double result = good1 + good2; System.out.println("原价:"+result); if(result>=100) { result = result - 20; System.out.println("折后价:"+result); } } }
条件结构
- 格式: if(条件判断){ ...语句块... } else {...语句块...}
-
public class IfExample { public static void main(String[] args) { int good1 = 50; int good2 = 60; double result = good1 + good2; System.out.println("原价:"+result); if(result>=100) { result = result - 20; System.out.println("折后价:"+result); } else { System.out.println("没有达到打折条件"); } } }
逻辑运算符
- 逻辑运算符用来连接一个或多个条件,判断这些条件是否成立
- 逻辑运算符的结果是 布尔类型
- 逻辑与运算符 && or &
- eg: 升学考试,考英语(en)、数学、C语言,总分大于230,并且英语大于60分时才能通过考试,各种情况如下表所示
int english = 60;
int math = 70;
int subjectC = 80;
int sum = english + math + subjectC;
if(sum>230&&english>60) {
System.out.println("通过考试!");
} else {
System.out.println("不及格!");
}
逻辑或运算符 || or |
- 两个条件只需满足其中一个即可
- 付款问题,刷卡或者现金都可
- 例题:int n = 3; boolean b = (3<7)|((n++)<2),问 b 和 n 等于多少? 答案: true,3
- 或运算符 又叫短路运算符,如果前一个条件为真的话,后面就不会执行了,所以 b++ 也没有执行,所以b=3,而不是4
非运算符 !
- 对原条件进行取反
- 例: !(3<5),结果为false
- eg:
System.out.println("请输入一个整数:"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if(!(n%3==0)) { System.out.println(n+"不能被3整除!"); }else { System.out.println(n+"能被3整除"); }
条件运算符 与 运算符的优先级
条件运算符
- java中唯一的一个三目运算符
- 语法: 布尔表达式?表达式1:表达式2
- 当布尔表式的值为true,则返回表达式1的值,否则返回表达式2的值
- eg:
int a = 10,b=7; int max; int max2; if(a>b) { max = a; }else { max=b; } System.out.println("max="+max); max2 = a>b?a:b; System.out.println("max2="+max2); boolean b1 = a>b?(3<6|3<1):(true==false); System.out.println("b1="+b1);
运算符的优先级
- eg:已知 int x = 4,y=6;
- n = x * y + (x%2)-(x/y)
- n=?
- 答案:24
运算符案例
- 通过 if-else 语句 判断输入的年份 是都为闰年
-
System.out.println("请输入年份:"); Scanner sc = new Scanner(System.in); int year = sc.nextInt(); if(year%400==0||(year%4==0&&year%100!=0)) { System.out.println("是闰年"); }else { System.out.println("不是闰年"); }