猿创征文 | Java基础 运算符、三元运算符的使用方法

发布于:2023-01-04 ⋅ 阅读:(300) ⋅ 点赞:(0)

运算符

以下用途解释为常规用法,部分特殊用法的解释在后面

算数运算符

名称 符号 用途 用法举例
加运算符 + 计算数字之间的和 a+b
减运算符 - 计算数字之间的差 c-b
乘运算符 * 计算数字之间的积 a*b
除运算符 / 计算数字之间的商 a/b
求余运算符 % 计算数对数的余数 a%b
自减运算符 数字自己减少1 –a或a–
自增运算符 ++ 数字自己增加1 ++a或a++

注意点:

  • "+“既可以是运算符,也可以用于字符串拼接。另外,当char类型字符与一个数字用”+"进行运算时,字符会通过查找ASCII表对应的数字,转化为数字后参与运算。

    String str1 = "Hello";
    String str2 = "World";
    String str3 = str1+str2;
    System.out.println(str3);
    //这里输出的str3就是字符串"HelloWorld"
    
    char c1 = 'a';  //a对应ASCII表的值为97
    int b = 'a'+1;
    System.out.println(b);
    //这里输出的值为98
    
  • “–“与”++”,放在前后位置是有一点区别的,当运算符写在变量前面,变量先执行自增/自减,后再进行赋值;当运算符写在变量后面,变量先进行赋值,后执行自增/自减;

    int i = 0;
    int j = 0;
    int a = i++;
    int b = ++j;
    System.out.println(a);  //值为0
    System.out.println(b);  //值为1
    //不进行赋值操作,两种写法效果相同,无影响
    i++;
    等同于
    ++i;
    

关系运算符

运算符 用法说明
> a>b,判断a是否大于b,成立返回true,不成立返回false
>= a>=b,判断a是否大于等于b,成立返回true,不成立返回false
< a<b,判断a是否小于b,成立返回true,不成立返回false
<= a<=b,判断a是否小于等于b,成立返回true,不成立返回false
== a==b,判断a是否等于b,成立返回true,不成立返回false
!= a!=b,判断a是否不等于b,成立返回true,不成立返回false

赋值运算符

运算符 解释 等价于
= 赋值,a=10 a=10
+= 加后赋值,a+=b a=a+b
-+ 减后赋值,a-=b a=a-b
*= 乘后赋值,a*=b a=a*b
/= 除后赋值,a/=b a=a/b
%= 取余后赋值,a%=b a=a%b

三元运算符与括号

符号 含义
判断式?true运行:false运行;
() 括号的优先级是最高的,可以利用()包裹需要优先运算的部分

三元运算符举例:

  • "?“前面放一个关系表达式,结果位true则运行”:“之前的代码,如果结果为false则运行”:"之后的代码

    int a = 0;
    int b = 1;
    int c = a>b ? a:b;
    System.out.println(c);
    //a>b的值是false,所以":"后面的b赋值给了c,输出1
    
  • 一般可用于求最大值

    //求三个身高的最高
    Scanner sc =new Scanner(System.in);
    System.out.println("请输入第一个身高");
    int hight1 = sc.nextInt();
    System.out.println("请输入第二个身高");
    int hight2 = sc.nextInt();
    System.out.println("请输入第三个身高");
    int hight3 = sc.nextInt();
    //hight1与hight2比较,true则返回hight1,否则就是hight2高
    int best = hight1 > hight2 ? hight1 : hight2;
    //上面两个中,大的值赋值给了best,best再与hight3比较,得到三个数中最大的值赋给bestOne
    int bestOne = best > hight3 ? best : hight3;
    System.out.println(bestOne);
    

逻辑运算符

运算符 说明 用法
& 逻辑且 a&b,当a和b都为true,返回true,否则返回false
| 逻辑或 a|b,当a和b有一个为true,就返回true
^ 逻辑异或 a^b,当a和b的结果不相同,返回true,否则返回false
逻辑非 !a,a的值为true,则!a为false,取相反值
&& 短路且 a&&b 只要有一个不成立,后面的就不用计算了
|| 短路或 a||b 只要有一个成立,那么后面的也不用运算了
  • 短路运算符用于提高程序运行效率,上面例子a&&b,只要a为false,后面的b就不会进行判断了,整个结果直接为false
  • a||b中,只要a为true,后面的b就不会进行判断了,整个结果直接为true

instanceof 对象运算符

该运算符的使用与多态、继承有关,多态中,父类对象无法访问子类重写的方法,将父类对象转为子类对象,则可以访问子类重写的方法。运算符左边的操作元是一个对象,右边的操作元是一个类,判断左边对象是否属于右边的类。

假设:Dog 类是Animal类的子类,Dog类重写Animal的eat()方法

Animal a = new Dog();
a.eat(); //此时会报错
//这里a instanceof Dog 的结果是true,并且将a对象转为Dog的对象d
//相当于强制转换:Dog d = (Dog)a;
if(a instanceof Dog d){
    d.eat();//这里就可以调用
}

网站公告

今日签到

点亮在社区的每一天
去签到