赋值运算符(=)
变量名 = 表达式
算术运算符(+ - * / % )
操作数 运算符 操作数
自增自减运算符(++ --,也称单目运算符)
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 + "天");
}
}