零基础 快速学Java韩顺平 p62-80 运算符:算数关系逻辑赋值三元和优先级

Posted karshey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础 快速学Java韩顺平 p62-80 运算符:算数关系逻辑赋值三元和优先级相关的知识,希望对你有一定的参考价值。

课程
p62-80

运算符介绍

算数运算符

对数值类型变量进行运算的。

对于自加自减(记忆方法):
a=2,b=a++ 的,b=a在前,所以a=3,b=2;
a=2,b=++a 的,b=+在前,所以a=3,b=3;

对于字符串相加:新形成的字符串有空格。
如:

public class temp{
    public static void main(String[] args){
        String a = "abc";
        String b = "def";
        String c = a + b;
        System.out.println(c);
        }
    }


i++和++i 都是i=i+1
一些注意事项:
关于/除法

public class temp{
    public static void main(String[] args){
        //除法/
        System.out.println(10 / 4);//2
        System.out.println(10.0 / 4);//2.5
        double ans = 10 / 4;//2-->2.0
        System.out.println(ans);//2.0
        }
    }

输出:

2
2.5
2.0

关于%取模
本质 a % b = a - a / b * b

public class temp{
    public static void main(String[] args){
        //取模 %
        System.out.println(10 % 3);
        System.out.println(-10 % 3);
        System.out.println(-10 % -3);
        }
    }

输出:

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

关于前++和后++
前++:++i 先自增后赋值
后++:i++ 先赋值后自增
这里的赋值是指赋给前面的等号,比如b=a++,那么赋值就是赋给b

关系运算符(比较运算符)

结果都是boolean型,要么true要么false。
常用于if或循环结构中。


比较运算符“==”不能写成“=”

试一下String:

public class temp{
    public static void main(String[] args){
        //instanceof
        System.out.println("abc"instanceof String);
        }
    }

输出:

true

Java instanceof用法详解

逻辑运算符

用于连接多个条件(多个关系表达式),最终的结果也是一个boolean类型。


说明逻辑运算规则:

以下跟C++的感觉不太一样(?)
&与&&


|与||


!和^


异或,异了就是true

省流版
开发中与用&&,或用||,因为可以只判断一个,效率高

赋值运算符



赋值运算顺序从右往左

三元运算符


(毫无逻辑的)记法:条件是否满足?满足就输出表达式1,否则2;

细节:

如下段代码:

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

        int a = 3;
        int b = 8;
        int c = a > b ? a : b;
        System.out.println(c);
        //也就是
        /*
        if(a > b) c = a;
        else c = b;
         */
        }
    }

输出:

8

对于c来说,不是a赋值给c就是b赋值给c。因此,a和b都要和c的数据类型匹配,或者能强制转换。
比如:int类型的26赋值给int,可以;赋值给double,也可以。但赋值给boolean,不行(也无法强制转换)。
就是这个意思。

运算符优先级

个人感觉知道一下就好了,因为平时写Java代码的时候可以用括号了自己决定优先级
右边这个表,从上到小是优先级由高到低

以上是关于零基础 快速学Java韩顺平 p62-80 运算符:算数关系逻辑赋值三元和优先级的主要内容,如果未能解决你的问题,请参考以下文章

零基础 快速学Java韩顺平 p87-101 四种进制及其相互转换二进制运算(原码补码反码)7种位运算符

零基础 快速学Java韩顺平 p52-59 基本数据类型转换(自动强制)与String类型的转换

零基础 快速学Java韩顺平 p20-26 快速掌握技术转义字符易犯错误注释代码规范

零基础 快速学Java韩顺平 p35-51 变量数据类型(整型,浮点,字符,布尔)重要编码,API文档

零基础 快速学Java韩顺平 p82-86 标识符的命名规则和规范关键字保留字键盘输入

零基础 快速学Java韩顺平 p104-147 流程控制:顺序分支循环跳转 控制语句 (ifforwhiledowhilebreakcontinuereturn)