Java学习第四天 基本运算符

Java学习第四天 基本运算符,第1张

目录

一、算术运算符:

二、关系运算符:

三、自增自减:++,--

         四、逻辑运算符:

五、位运算符(了解):

六、扩展赋值运算符:

七、条件运算符 ? ,:(三元运算符):

         八、扩展一下Java类Math的用法:


Java语言支持如下运算符:

算术运算符,很好理解,平时算数中的加减乘除,这里特别注意。%是求余的意思

赋值运算符和关系运算符不多描述,记住一点:java中相等的意思是两个等于号==,不相等是!=

逻辑运算符:&&是与(and),||是或(or),!是非的意思(是或不是)

后面三个了解下,后面会深入。

一、算术运算符:

这里在运算时要注意数据类型,我们这里是int类型,所以a/b自动向下取整取0了。

再看一个栗子:

输出结果为

 这里就要提到一个规律了:

当数值相加是,有long类型的数据最后结果自动转换为long,没有就统一都是int类型

看个图就明白了:

我们这里把c+d的值通过类型转换转成String类型,他报了个什么错?不可以把int类型转化为String类型,欸,这说明他的值就是int类型。简洁明了。

二、关系运算符:

 接下来划重点:

三、自增自减:++,--

先看一个栗子:

欸,输出结果为5,3,5。这是为什么呢?

这就涉及到a++和++a的不同了。

首先,要知道,a++的含义是先赋值再自己+1,++a是先自己+1再赋值给别人

来给程序加点东西:

这里我在 int b=a++;后面输出了一个a的值,输出的结果为4,而我们原本输出b的值为3,这说明什么?刚好就证明了a++是先把自己本身的值赋值给b,然后自己本身再+1,这样就简洁明了。

那int c=++a 又为什么等于5呢?

那是因为前面的代码运行完a的值已经等于4了,且我们前面说到++a是先自己加1再赋值,所以 c=4+1=5。

自减和自加同理。

四、逻辑运算符:

看个栗子:

第一个&&(and、和的意思):我和你,全真才叫真,有一个假就是假。

第二个||(或、or的意思):我或者你,有一个真的就是真,全都假的才叫假

第三个!(取反):假变真,真变假。

记住一点:逻辑运算符会执行短路运算:

那么什么是短路运算呢?做个实验:

这里输出结果为:

看,c的值还是等于5,这说明什么?说明没有执行c++,说明  boolean d = (c<4)&&(c++<4); 这行代码根本没有运行到c++<4那里,再判断c<4为假的时候就确定了d的值为假了(&&符号有假即假原理),没有再往后运行了,这个就是短路运算。

五、位运算符(了解):

上图:

再来看下<<(左移)和>>(右移):

六、扩展赋值运算符:

 扩展一个东西,叫做字符串连接符:(+)

七、条件运算符 ? ,:(三元运算符):

x?y:z即为

如果x=true,则结果为y,否则结果为z

 看个栗子:

 输出结果为及格。

 最后,Java中运算符是有分优先级的:

优先级描述运算符结合性
1括号()可以改变符号的优先级
2正负号+,-从右到左
3一元运算符++,--,!从右到左
4乘除*,/,%从左到右
5加减+,-从左到右
6移位>>,<<从左到右
7比较大小>,< ,>=,<=从左到右
8比较是否相等==,!=从左到右
9按位与运算&从左到右
10按位异或运算^从左到右
11按位或运算|从左到右
12逻辑与&&从左到右
13逻辑或||从左到右
14三元运算符? :从右到左
15赋值运算符=从右到左

最后,我把程序流程拆解再注释里:

 简洁明了。

八、扩展一下Java类Math的用法:

参考大佬写的:

Java中Math函数的使用_xuexiangjys的博客-CSDN博客_java math

这里面是有很多运算方法的。

我们举个栗子:

package operator;

public class Demo05 {
    public static void main(String[] args) {
//        Math的用法:
/*        Math.sqrt() : 计算平方根
        Math.cbrt() : 计算立方根
        Math.pow(a, b) : 计算a的b次方
        Math.max( , ) : 计算最大值
        Math.min( , ) : 计算最小值
        Math.abs() : 取绝对值*/
        System.out.println(Math.sqrt(16)); // 4.0
        System.out.println(Math.cbrt(8)); // 2.0
        System.out.println(Math.pow(3, 2)); // 9.0
        System.out.println(Math.max(2.3, 4.5));// 4.5
        System.out.println(Math.min(2.3, 4.5));// 2.3

        /**
         * abs求绝对值
         */
        System.out.println(Math.abs(-10.4)); // 10.4
        System.out.println(Math.abs(10.1)); // 10.1
        /**
         * ceil天花板的意思,就是逢余进一
         */
        System.out.println(Math.ceil(-10.1)); // -10.0
        System.out.println(Math.ceil(10.7)); // 11.0
        System.out.println(Math.ceil(-0.7)); // -0.0
        System.out.println(Math.ceil(0.0)); // 0.0
        System.out.println(Math.ceil(-0.0)); // -0.0
        System.out.println(Math.ceil(-1.7)); // -1.0

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

        /**
         * floor地板的意思,就是逢余舍一
         */
        System.out.println(Math.floor(-10.1)); // -11.0
        System.out.println(Math.floor(10.7)); // 10.0
        System.out.println(Math.floor(-0.7)); // -1.0
        System.out.println(Math.floor(0.0)); // 0.0
        System.out.println(Math.floor(-0.0)); // -0.0

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

        /**
         * rint 四舍五入,返回double值 注意.5的时候会取偶数 异常的尴尬=。=
         */
        System.out.println(Math.rint(10.1)); // 10.0
        System.out.println(Math.rint(10.7)); // 11.0
        System.out.println(Math.rint(11.5)); // 12.0
        System.out.println(Math.rint(10.5)); // 10.0
        System.out.println(Math.rint(10.51)); // 11.0
        System.out.println(Math.rint(-10.5)); // -10.0
        System.out.println(Math.rint(-11.5)); // -12.0
        System.out.println(Math.rint(-10.51)); // -11.0
        System.out.println(Math.rint(-10.6)); // -11.0
        System.out.println(Math.rint(-10.2)); // -10.0

        System.out.println("-------------------");
        /**
         * round 四舍五入,float时返回int值,double时返回long值
         */
        System.out.println(Math.round(10)); // 10
        System.out.println(Math.round(10.1)); // 10
        System.out.println(Math.round(10.7)); // 11
        System.out.println(Math.round(10.5)); // 11
        System.out.println(Math.round(10.51)); // 11
        System.out.println(Math.round(-10.5)); // -10
        System.out.println(Math.round(-10.51)); // -11
        System.out.println(Math.round(-10.6)); // -11

    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/921547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存