【刷题学习Java】Java运算符的易错点

发布时间:2022-08-19 12:55

在这里插入图片描述

个人主页:这个昵称我想了20分钟
✨往期专栏:【速成之路】jQuery
       【速成之路】Ajax
       【速成之路】SQL server
️系列专栏:【初学者】刷题学习Java
推荐一款模拟面试,刷题神器点击跳转到网站

  ❤️欢迎各位小伙伴们!强烈推荐一款刷题神器点击跳转到网站
  这是一款专注于程序员的学习和成长的专业平台,有许多专业的IT面试题库,精选了多家知名企业的面试题,全方位提升你的IT技能,轻松面对各大企业面试。

【刷题学习Java】Java运算符的易错点_第1张图片
代码如下:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        scanner.close();

        //write your code here......
        if(a>b){
            System.out.println((a+b)+" "+(a-b)+" "+(a*b)+" "+(a/b)+" "+(a%b));
        }
        else{
            System.out.println((b+a)+" "+(b-a)+" "+(b*a)+" "+(b/a)+" "+(b%a));
        }
    }
}

【刷题学习Java】Java运算符的易错点_第2张图片

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double d= scanner.nextDouble();

        //write your code here......
        int i = (int)(d + 0.5);
        System.out.println(i);
    }
}

说明:简单粗暴

【刷题学习Java】Java运算符的易错点_第3张图片

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();

        //write your code here.......
        a = (a + b) - (b = a);
        System.out.println(a+" "+b);
    }
}

算数运算符

除号:对于除号“/”,它的整数除和小数除是有区别的。
例:写出下列表达式输出的值。

System.out.println(10/4);

结果为:2

System.out.println(10.0/4);

结果为:2.5

    double d = 10 / 4;
    System.out.println(d);

结果为:2.0

取模:a % b 相当于 a - a / b * b

自增:
前++ :先自增再赋值

int i = 5;
int j = ++i;//相当于i = i +1;j = i
System.out.println("i=" + i + "j=" + j);

输出结果为:i = 6 j = 6

后++ :先赋值再自增

int i = 5;
int k = i++;//相当于k = i;i = i + 1
System.out.println("i=" + i + "k=" + k);

输出结果为: i = 6 k = 5

面试题精选:
例题1:

    int i = 1;
    i = i++;
    System.out.println("i=" + i );

输出结果为:i = 1
注意:此处首先使用临时变量,将i赋值给临时变量,i再进行自增的运算,最后再把临时变量的值赋值给i。即:(1)temp = i;(2)i = i +1;(3)i = temp;

例题2:

    int i = 1;
    i = ++i;
    System.out.println("i=" + i );

输出结果为:i = 2
注意:这里先进行自增,再使用临时变量,将i赋值给临时变量,最后再将临时变量赋值给i。即:(1)i = i +1;(2)temp = i;(3)i = temp;

赋值运算符

关系运算符

1.关系运算符的结果都为Boolean型(true或者false)
2."="为赋值
"=="为比较运算符

逻辑运算符

逻辑运算规则:

  1. a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false
  2. a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false
  3. a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
  4. a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
  5. !a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true
  6. a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false
  7. a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false

位运算符

原码、反码、补码重点概括:

  1. 二进制的最高位是符号位:0表示正数,1表示负数。(口诀:正负01
  2. 正数的原码、反码和补码都一样。(三码合一
  3. 负数的反码=它的原码符号位不变,其他位取反,即0->1,1->0。
  4. 负数的补码=它的反码+1,负数的反码=负数的补码-1.
  5. 0的反码和补码都为0.
  6. Java中的数都是有符号的。
  7. 在计算机运行的时候,都是以补码的方式来运算的。
  8. 当我们看运算结果的时候,要看它的原码
位运算符 运算规则
按位与& 两者全为1时,结果为1,否则为0
按位或 两者有一个为1时,结果为1,否则为0
按位异或^ 两者一个为1,一个为0时,结果为1,否则为0
按位取反~ 0取反为1,1取反为0
推导~-2
1.先得到-2的原码。
10000000 00000000 00000000 00000010
2.再得到-2的反码。
11111111 111111111 11111111 11111101
3.再得到-2的补码。(因为机器以补码的方式运算)
11111111 11111111 11111111 11111110
4.计算~-2
00000000 00000000 00000000 00000001
(结果的原码)

所以得到结果为:1

位运算符 >>、<< 和 >>> , 运算规则:

  1. 算术右移 >>:低位溢出,符号位不变,并用符号位补溢出的高位
  2. 算术左移 <<: 符号位不变,低位补 0
  3. >>> 逻辑右移也叫无符号右移,运算规则是: 低位溢出,高位补 0
  4. 特别说明:没有 <<< 符号
int a=1>>2; //1 => 00000001 => 00000000 本质 1 / 2 / 2 =0  
int c=1<<2; //1 => 00000001 => 00000100 本质 1 * 2 * 2 = 4

三元运算符

使用细节:
1.表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换)

  int a = 1; 
  int b = 4; 
  int c = a > b ? (int)2.3 : (int)3.4;//可以的 
  double d = a > b ? a : b + 3;//可以的,满足 int -> double

2.三元运算符可以转成 if–else 语句

运算符优先级

【刷题学习Java】Java运算符的易错点_第4张图片
只有单目运算符、赋值运算符是从右向左运算的。

结尾:

  Java的学习必须是有条理、有逻辑的由浅入深。学习Java,一定要理论+实践,对于刚入门的小白来说,练习是必不可少的,想要继续提升能力,都可以去牛客(点击直接进入练习)刷题练习。而且可以看到别人的解题思路和解题方法,对自己有非常棒的提升赶紧学习起来吧!❤️
在这里插入图片描述

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号