概述

一、表达式

什么是表达式。由一系列预算付和操作数组成

如:5,a,m+3,sum=a+b,n=x*y+(x%2)-(x/y)

 

二、运算符

1、算术运算符(+,-,*,/,%,++,--),

2、赋值运算符(=,+=,-=,*=,/=,%=),例如:a+=b,等于:a=a+b

3、关系运算符(==,!=,<,<=,>,>=)

4、逻辑运算符(!,&,&&,|,||) && 或 || : 短路运算符,就是前面表达式结果能直接决定整个表达式结果,就不需要判断后面表达式结果

5、条件运算符(? :) 例:a>b?a:b; //a>b,成立为a,不成立为b; java中唯一的三目表达式,意思是操作三个数

6、位运算符(本次没讲解)

 

三、运算符的优先级

 

一、赋值运算符

格式:变量 = 表达式

注意:赋值运算符是从右往左运算

赋值运算符的左边只能是变量不能是常量

java运算符与表达式 java运算符与表达式代码_整除

二、算数运算符

算数运算符:

1)作用:算数运算符主要用于进行基本的算数运算,如加法、减法、乘法和除法等;

2)分类:

加法(+)、减法(-)、乘法(*)、除法(/)、求余数(%)、自增1(++)、自减1(--);

3)注意:除法的分子分母都是整型时,结果为整除后的结果;

除法的分子分母有任意一个为小数时,结果为小数。

public static void main(String[] args) {
        int num1=10,num2=5,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(13/5);
        //有一个是浮点型,结果就有小数
        System.out.println("13.0/5="+13.0/5);
        //求余数
        result=13%num2;
        System.out.println("13%"+num2+"="+result);
        System.out.println("13.5%5="+(13.5%5));
    }

 

注意:

1.字符串连接:有字符串在,输出的都是连接后的字符串;

只有数值的话,输出的就是运算后的数值结果;

2.整除中的数有小数,结果就有小数

自增自减运算符

 

自增自减在前:先自增自减,后运算

自增自减在后:先运算,后自增自减 (即使自增自减在括号内,也是如此)

java运算符与表达式 java运算符与表达式代码_整除_02

 

三、关系运算符

1)分类:>、<、>=、<=、==、!=;

2)比较运算符用于判断两个数据的大小;

3)比较的结果是一个布尔值;

4)字符型数值比较的是两个字符的ASCII值,'A' >'B' 结果false;

5)浮点数与整数比较,只要相等就返回true,float f =5.0f; long l =5; f==l; 结果为true;

 

 

if条件结构

关系运算符主要用于条件和循环语句中的判断条件

简单if语句的格式:

if(条件){
<语句块>
}

 

举例:

class ConditionDemo1 {
    public static void main(String[] args) {
    //商场打折,如果两件商品的价格大于100则减20,并把原价和折后价分别输出。
    //定义两个变量,分别存放两件衣服的价格
        double price1,price2;
        price1=80;
        price2=55;
    //计算两件商品的总价格
        double sum=price1+price2;
    //输出原价
        System.out.println("原价为"+sum);
        if(sum>100) {
            sum=sum-20;//sum-=20;
        }
        System.out.println("折后价为"+sum);
    }
}

//原价为135.0
//折后价为115.0

 

if-else条件结构

格式:

if(条件){
    <语句块>
    }else{
    <语句块>
    }

 举例:

public class ConditionDemo2 {
    public static void main(String[] args) {
//判断一个整数是基数还是偶数,并将结果输出。
//定义一个变量存放数据
// int n=11;
// 从键盘接收数据
        System.out.println("请输入一个整数:");
        Scanner s = new Scanner(System.in);//s变量
        int n = s.nextInt();//接收键盘输入的s
        if (n % 2 == 0) {
            System.out.println(n + "是偶数!");
        } else {
            System.out.println(n + "是基数!");
        }
    }
}
//请输入一个整数:
//10
//10是偶数!

 

 

四、逻辑运算符

1)种类:与(&&或&)、或(||或|)、非(!);

2)注意:逻辑运算符的操作数都是布尔类型的。

 

逻辑与运算符(&&)

1)&&:又叫短路运算,如果第一个表达式的值就能决定表达式最后的结果,运算符右边的表达式就不再计算了;

2)&:即使运算符左边表达式的值为false,也会继续执行运算符右边的表达式。

例如:

int n=3; boolean b=(3>7)&((n++)<2);
结果为b=false,n=4。
若boolean b=(3>7)&&((n++)<2);
结果为b=false,n=3。

 

逻辑“或”运算符(||)

1)运算逻辑:

  只要运算符左右两边的表达式的值有一个为true,则结果为true;

  当运算符左右两边的表达式的值都为false,则结果为false;

2)特点:||也是短路运算符,只要有一个表达式的结果为true,则整个表达式的值一定为true,且第二个表达式就不会进行计算了。

 

例如: int n =3;boolean b = (3<7)|((n++)<2) 结果为b =true,n=4 int n=3;boolean b = (3<7)||((n++)<2)
结果为b=true,n=3;

逻辑“非”运算符(!) 

对原条件进行取反。格式 !(n%3==0)

举例:

public class LogicDemo3 {
    public static void main(String[] args) {
//输入一个整数
        System.out.println("请入一个整数:");
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        if(!(n%3==0)) {
            System.out.println(n+"不能被三整除");
        }else {
            System.out.println(n+"能被三整除13");
        }
    }
}

//请入一个整数:
//12
//12能被三整除

 

五、条件运算符(三目运算符)

 

语法: 布尔表达式?表达式1:表达式2

例如:a>b?a:b 当布尔表达式的值为true,返回表达式1的值,否则返回表达式2的值

public class Demo4 {
    public static void main(String[] args) {
    //求a,b的最大值
        int a=1,b=7,max;
        if(a>b) {
            max=a;
            System.out.println("max="+max);
        }else {max=b;
            System.out.println("max="+max);
        }
        max=a>b?a:b;//前面那么多行代码,可以只用这一行
        System.out.println("max="+max);

        boolean b1=a>b?(3<6&&4>3):(true==false);// :的两边也可以是复杂的表达式
        System.out.println("b1="+b1);
    }
}

 

六、运算符的优先级

算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符

java运算符与表达式 java运算符与表达式代码_System_03

七、运算符案例 

判断是否是闰年

提示闰年的判断规则:能被4整除但不能被100整除的年份,或者能被400整除的年份

public class LeapYearDemo {
    private static Scanner sc;
    public static void main(String[] args) {
        sc = new Scanner(System.in);
        int year;
        while (true) {
            System.out.println("请输入年份:");
            year=sc.nextInt();
            if(((year%4==0)&(year%100!=0))|(year%400==0)) {
                System.out.println(year+"是闰年");
            }else {
                System.out.println(year+"不是闰年");
            }
        }
    }
}

 

请输入年份: 2000

2000是闰年

请输入年份: 2004

2004是闰年

请输入年份: 1995

1995不是闰年