【JAVA学习笔记】7-算术运算符号、关系运算符号、逻辑运算符号

目录

一、算术运算符号

1.取模%符号,

2.++自增与--自减

二、关系运算符

三、逻辑运算符

1.&&和&的基本规则

2.||和|的基本规则

3.! 的基本规则

4.^的基本规则

四、逻辑运算符练习

1.

2.

总结

下一篇 75集 赋值运算符


一、算术运算符号

1.取模%符号,

用于取余数,即10%3结果为1,在JAVA中 取余有公式

                                                a%b = a - a / b * b 

当有小数存在时,应当加上     a%b = a - (int)a / b * b 

在带有负号的运算中很有帮助 例如

                -10 % 3 = -10 - (-10) / 3 * 3 = -1

                10 % -3 = 10 - 10 / (-3) * (-3)=1

                -10 % -3 = -10 - (-10)/(-3) * (-3) = -1

2.++自增与--自减

在独立语句中,i++等同于++i,都是i = i +1

但在非独立语句中,前+与后+有很大的差别

        例如

                int j = 8; int k = ++j;

        对此前++,先执行自增语句即此时j = 9,随后赋值于k,即k = 9.

        但是对于后++

                int j=8; int k = j++;

        先执行赋值 k = j = 8;而后执行自增 j = 9 ;

对于临时变量,int i = 1; i=i++ ;println(i);

        逻辑 (1)temp = i (2)i=i+1 (3)i = temp  所以i仍然是=1

                        int i = 1; i=++i; println(i); 

        逻辑 (1)i = i+1 (2)temp = i (3)i = temp 所以i的结果会自增一个 i=2

示例 剩59天放假,问合多少周多少天

                        int week;int day;int days = 59;

                        week = 59 / 7 ; //week = 8

                        day = 59 % 7 ; //day = 3

示例2 定义变量保存 华氏摄氏度234.6转换为摄氏度,公式为 5 / 9 * (华摄氏度 - 100)

                        double hua = 234.6;

                        double she;

                        she = 5 / 9 * (hua - 100);//注意,不能照搬公式计算,在JAVA中5 / 9

//作为一段逻辑运算此时两个都是整型数据,直接相除只会得到整型数据,只会剩下0

//则该段输出0,应该更改为,she = 5.0 / 9 * (hua - 100); 可正常运行

二、关系运算符

                ==        相等于        8 == 7        false

                !=        不等于         8 != 7         true

                <         小于

                >         大于

                >=         <=        大于/小于等于

        特别注意,在关系运算中,只会比较后只会输出为true或者false,且只能赋值于boolean数据中。

三、逻辑运算符

                分为两组(1)短路与&&          短路或||            取反!

                (2)逻辑与&         逻辑或|        逻辑异或^

        在开发中,常用短路运算符,即 &&         || 

                a        b        a & b        a && b        a | b         a || b        !a        a^b

                T        T        T                T                T             T              F          F

                T        F        F                F                F             F             F          T

                F        T        F                F                T             T             T           T

                F         F        F               F                F             F            T            F

        可整理为,

        对于与符号&,逻辑表达同等于&&,当变量全为1时,输出为1,即a*b;

        对于或符号|,逻辑表达式同等与||,当变量有一个为1时,输出为1,即a+b;

        对于非符号!,即对所运算变量取反;

        对于异或符号a^b,当变量不同时,输出为1,否则输出为0。

同关系运算符一致,也是输出布尔类型的数据

1.&&和&的基本规则

                两者在逻辑表达式上一样,都在两个变量为真是输出真

        区别 对于&&短路与,如果第一个条件为false,则第二个条件不会判断,直接输出false

        示例

                        int a = 4;
                        int b = 9;
                        if (a < 1 && ++b < 50) {
                            System.out.println("ok100");
                        }
                        System.out.println("a=" + a +'\t' + "b=" + b);

                

        如果改为逻辑与&;if (a < 1 & ++b < 50)  则会输出第二个条件的判断,执行++b,因为要判断多个,所以常用短路与&&,效率高

                

2.||和|的基本规则

                两个逻辑表达式相同,当两个变量有一个为true时,输出true

        区别同上,短路或||效率高,当第一个条件判断true时直接输出true,所以常用短路或||

3.! 的基本规则

                当变量为false时输出为true,当变量为true时输出为false。

4.^的基本规则

                当两个变量不同时,输出true,否则输出false

四、逻辑运算符练习

1.

        

(1).因为x++为后++,所以先进行判断,随后参与自增,即 x!=6,然后if条件内为flase,不输出大括号内容,且因为&为逻辑与,所以第二个条件正常运行判断,所以x=6 ,y=6;
(2).同1,x = 6,而中间的逻辑符号为短路与&&所以后面的也不执行,所以y = 5;

(3).x++为后++,所以先进行判断,随后自增,第一个条件判断为true,此时x = 6 ,因为是逻辑或|,所以第二条件执行,++y先自增,后判断,判断为false,但是逻辑符号为或,只要有一个true则输出为true,所以if大括号内容执行,至此x = 11,y = 6;

(4).同1,但因为是短路或,在第一条件判断后直接停止,所以++y不运行,if直接输出为真,所以x = 11,y = 5;

2.

                

答:第一个if的第一个条件判断为后++,先判断,后自增,所以第一个条件判断为true,然后z=47,而后判断第二个条件,为false,所以if输出为false,所以第一个if运行完之后,z = 47;

第二个if的第一个条件判断为假,随后判断第二个条件,++z == 49,先自增,后判断,所以此时

z = 48,两个全为false,所以if输出为false,不输出其内容,最后,println z= 48,答错了,诶嘿。

在第一个if语句的第一个条件判断都分析正确,z=47,且判断为false,但我在第二个条件判断出错,此时的y = ture是赋值语句,而不是==,所以这里直接就是true了,所以if语句判断为true,执行z++,所以z=48,同理,下一句也是直接赋值为false,随后判断后一句,++z = 49 为true,执行z++,所以最后的结果z = 50。

总结

       算术运算符中的取模公式  a%b = a - a / b * b 

        在非独立语句中,前+与后+有很大的差别

        关系运算符和逻辑运算符都是输出boolean型数据

下一篇 75集 赋值运算符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yinhai1114

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值