运算符
一.运算符的类型
1.赋值运算符
2.算术运算符
(1)加( + ) 减( - ) 乘( * ) 除( / ) 取余( % ) 自增( ++ ) 自减( -- )
(2)运算顺序:a.(乘,除,取余)的优先级大于(加 减)
b. 优先级相同时从左到右运算
(3)运算符两边的数据类型不同时,自动把较小类型数据转换为较大类型数据
(4)自增:a.前自增 a = ++i 等价于先把变量i加1,然后把i的值赋给a
b.后自增 a = i++ 等价于先把i的值赋给a,然后再把i的值加1
int x=1,y=1;
int a=x++;
int b=++y;
System.out.println(x+","+y+","+a+","+b);
//结果为:2,2,1,2
3.关系运算符
(1) 大于( > ) 小于( < ) 大于等于( >= ) 小于等于( <= ) 等于( == ) 不等于( != )
(2) 关系运算表达式的值为boolean类型
4.逻辑运算符
(1)与(&& ) 或( || ) 非( !)
&& : 两者有一个false,结果为false
|| : 两者有一个true,结果为true
(2)优先级:!> && > ||
(3)短路逻辑:a. 表达式1&&表达式2 表达式1结果为false,则表达式2不做运算
b.表达式1 || 表达式2 表达式1的结果为true,则表达式2不做运算
int i=100,j=200;
boolean b1=i>j&&i++>100;
System.out.println(b1+","+i);
//结果为false,100
//i++不会被执行
boolean b2=i>0||j++>200;
System.out.println(b2+","+j);
//结果为true,200
//j++不会被执行
5.条件运算符
(1)语法:表达式1 ?表达式2 :表达式3
(2)表达式1的值为boolean类型,若为true则整个表达式的值为表达式2的值,否为为表达式3的值
(3)表达式2和表达式3的值必须为同一类型
二.运算符的优先级别
1.算术>关系>逻辑>赋值
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//判断年份是否为闰年
//能整除4且不能整除100,或者能整除400的年份为闰年
Scanner sc=new Scanner(System.in);
System.out.println("请输入判断的年份:");
int year=sc.nextInt();
boolean result;
result=year%400==0||year%4==0&&year%100!=0;
//等价于result=(year%400==0)||(year%4==0&&year%100!=0);
System.out.println(year+"是闰年吗?"+result);
}
}