赋值运算符(=)
变量名 = 表达式
算术运算符(+ - * / % )
操作数 运算符 操作数
自增自减运算符(++ --,也称单目运算符)
a++ 后置运算符,变量名自增1,表达式值不变
++a 前置运算符,变量名表达式都自增1
复合赋值运算符(+= -= *= /= %=)
关系运算符
操作数 运算符 操作数
关系运算符就是测试两个操作数之间关系的符号,其中操作数可以是变量、常量或表达式,结果返回布尔值
false和ture。
运算符 含义 例 返回值
== | 等于 | 5==6 | false |
!= | 不等于 | 5!=6 | true |
> | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
>= | 大于等于 | 5>=6 | false |
<= | 小于等于 | 5<=6 | true |
=为赋值运算符,==为等于运算符
>、<、>=、<= 运算符的优先级别高于==、!=
逻辑运算符
&& 考虑左边是否不成立,左边为假,右边不执行
|| 考虑左边是否成立,左边为真,右边不执行(& |,则需要考虑两边)
操作数类型只能是布尔类型,操作结果也是布尔值
优先级别 ! > & > ^ > | > && > ||
条件运算符(三目运算符)
语法:
条件表达式?表达式1:表达式2
(用if else语句,看是否优先用条件运算符)
运算符的优先级
算>比>逻>赋
优先级 | 运算符 | 描述 |
1 | () | 括号 |
2 | +、- | 正负号 |
3 | ++、--、! | 单目运算符 |
4 | *、/、% | 乘除 |
5 | +、- | 加减 |
6 | <<、>>、>>> | 移位运算 |
7 | <、<=、>、>= | 比较大小 |
8 | ==、!= | 是否相等 |
9 | & | 按位与运算 |
10 | ^ | 按位异或运算 |
11 | | | 按位或运算 |
12 | && | 非简洁逻辑与运算 |
13 | || | 非简洁逻辑或运算 |
14 | = | 赋值运算 |
例子:
/*
*闰年,四年一闰,百年不闰,四百年再闰
*月份1,3,5,7,8,10,12有31天
*4,6,9,11有30天
*闰年29天,平年28天
*/
package demo;
import java.util.Scanner;
public class YearMonthDay {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 输入年份,月份,日期,判断,是该年的第几天
int years = sc.nextInt();
int mont = sc.nextInt();
int day = sc.nextInt();
int sum = 0;
switch (mont) {
case 12:
sum = sum + 30;
case 11:
sum = sum + 31;
case 10:
sum += 30;
case 9:
sum += 31;
case 8:
sum += 31;
case 7:
sum = sum + 30;
case 6:
sum = sum + 31;
case 5:
sum += 30;
case 4:
sum = sum + 31;
case 3:
sum += 28;
if (years% 4 == 0 && years % 100 != 0 || years % 400 == 0) {//判断是否是闰年,还是平年
sum++;
}
case 2:
sum += 31;
case 1:
sum += day;
}
System.out.println(years + "年" + mont + "月" + day + "日,是" + years + "的第" + sum + "天");
}
}