java学习笔记(四)java中的运算

1.几个概念:

1:运算
    对常量和变量进行操作的过程称为运算。

2:运算符
    对常量和变量进行操作的符号称为运算符。

3:操作数
    参与运算的常量或者变量称为操作数。

4:表达式
    用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
    不同运算符连接的式子体现的是不同类型的表达式。
    a
    a + b
    a > b

2.运算符:

运算符的分类:

    算术运算符
    赋值运算符
    比较运算符
    逻辑运算符
    三目运算符

3.算术运算符:

    +,-,*,/,
    %,++,--

1./和%的区别?

        /:除法,得到商
            符号相同为正,不同为负
        %:除法,得到余数
            符号和第一个操作数相同
    %的应用:
        x%3 等于 0 说明x能被3整除
        x%2 等1     说明x是奇数   
            等0     说明x是偶数

练习:

public class OperatorDemo {
    public static void main(String[] args) {
        /**
         * 快捷键:
         * tab向右缩进
         * shift+tab向左边缩进
         *  
         * 算术运算符:
            +,-,*,/,
            %,++,--
         */

        int a = 10;
        int b = 5;
        int c = -3;

        System.out.println(a+b);//15
        System.out.println(a-b);//5
        System.out.println(a*b);//50
        System.out.println(a/b);//2
        System.out.println(a%c);//1

        /**
         * 商的结果,如果除数和被除数符号相同,商为正,否则商为负
         */
        System.out.println(10/5);//2
        System.out.println(-10/5);//-2
        System.out.println(10/-5);//-2
        System.out.println(-10/-5);//2

        System.out.println("-------------------");

        /**
         * 余数的结果符号和被除数相同
         */
        System.out.println(10%3);//1
        System.out.println(-10%3);//-1
        System.out.println(10%-3);//1
        System.out.println(-10%-3);//-1

    }
}

2.++,–运算符

作用:++就是加1,--就是减1。
      自增自减运算符

++,--在运算的时候,可以放在操作数的前面,也可以放在操作数的后面
    A:单独使用
        没有区别
    B:参与其他操作使用
        后面:先操作,再自增
        前面:先自增,再操作  

练习:

public class OperatorTest {
    public static void main(String[] args) {
        int a = 10;
        int b = 10;
        int c = 10;

        a = b++;//a=10,b=11,c=10
        c = --a;//a=9,b=11,c=9
        b = ++a;//a=10,b=10,c=9
        a = c--;//a=9,b=10,c=8

        System.out.println(a);//9
        System.out.println(b);//10
        System.out.println(c);//8

    }

}

4.赋值运算符:

    基本:=
    扩展:+=

    扩展的赋值运算符隐含了强制类型转换:
        int a = 10;
        a += 20;
        a = (a的数据类型)(a + 20)

练习:

public class OperatorDemo3 {
    public static void main(String[] args) {


        int a = 10;
        a = a+5;//将之前定义的变量值和后面的数字相加,赋值给之前的变量
        System.out.println(a);//15


        int b = 10;
        b+=5;//左边和右边进行运算之后,将结果赋值给左边,等价于a = a+5;
        System.out.println(b);//15


        int c = 10;
        c/=5;
        System.out.println(c);//2

        short s = 10;
        s = (short) (s+10);//强制转换为short类型,否则s+10为int类型,不能赋值给s
        System.out.println(s);//20

        System.out.println("-----------------");
        short s1 = 10;
        s1+=10;//+=这种赋值运算会隐含一个强制类型转换
        System.out.println(s1);//20
    }

}

5. 关系运算符:

    ==,!=,>,>=,<,<=

注意:
    A:比较运算符的结果肯定是boolean。
    B:你到底是使用"="还是使用"==",你自己要清楚。

练习:

public class Demo {
    public static void main(String[] args) {
        int a= 10;
        int b = 20;
        int c = 10;

        System.out.println(a>c);//false
        System.out.println(a<c);//false
        System.out.println(a>=c);//true
        System.out.println(a<=c);//true
        System.out.println("--------------");
        System.out.println(a!=c);//flase
        System.out.println(a==c);//true
        System.out.println(a=c);//将c的值赋值给a,并且打印a的值

    }

}

6. 逻辑运算符:

    &,|,!,^
    &&,||

注意:
    逻辑运算符用于连接关系表达式

结论:
    &: 有false则false
    |: 有true则true
    !:改变结果,取反
    ^:相同false,不同true
        记忆:情侣关系(男男,男女,女男,女女)    

最常用的逻辑运算符;
    !,&&,||

&&和&:
    结果一样,但是&&具有短路效果,左边如果是false,右边不执行。
||和|:
    结果一样,但是||具有短路效果,左边如果是true,右边不执行。

练习:

public class Demo2 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;

        System.out.println((a>c)&&(a>b));//false&&false=false
        System.out.println((a<c)&&(a<b));//true&&true=true
        System.out.println((a>c)&&(a<b));//false&&true=fasle
        System.out.println((a<c)&&(a>b));//true&&false=false

        System.out.println("-----------------------");
        //|运算两边连接的布尔值,只要有一个为true就为true
        System.out.println((a>c)||(a>b));//false||false=false
        System.out.println((a<c)||(a<b));//true||true=true
        System.out.println((a>c)||(a<b));//false||true=true
        System.out.println((a<c)||(a>b));//true||false=true

        System.out.println("----------------------");

        int x = 3;
        int y = 4;
        //System.out.println(x++>3&&y++>4);
        //false&&   =fasle,&&会存在一个短路效果,前面链接的布尔值为fasle,
        //整体就为fasle,所以后面的判断不执行
        System.out.println(x);//4
        System.out.println(y);//4


        System.out.println(x++>3||y++>4);
        //||运算链接的布尔值,如果前面的布尔值为true,连接的整体结果就为true后面的不执行
        System.out.println(x);//4
        System.out.println(y);//5
    }

}

7. 三元运算符:

    格式:?:

    (比较表达式)?表达式1:表达式2;

    执行流程:
        如果条件为true,运算后的结果是表达式1;
        如果条件为false,运算后的结果是表达式2;

练习:获取两个数和三个数之间的最大值

public class Demo {
    public static void main(String[] args) {

        int a = 10;
        int b = 20;
        int c = 30;

        //使用三目运算符求出a,b之间的最大值
        int max = (a>b)?a:b;
        System.out.println(max);

        //嵌套使用(获取三个数的最大值)
        int temp = (a>b)?a:b;
        max = (temp>c)?temp:c;
        System.out.println(max);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值