java入门第三天~运算符及导入

1.运算符

01逻辑运算符

​ 在此之前,已经简单介绍了算术运算符、比较运算符、赋值运算符、接下来本节将对逻辑运算符、位运算符、三元运算符进行介绍。

01.01逻辑运算符包括哪些?

​ &(与) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)。

逻辑运算符的运算结果是布尔类型。

01.02逻辑与运算

​ 逻辑与(&) 运算两端只有左右两端同时为true,其最终结果才是true ,只要任意一端为false其最终结果都是false。

public class Yu {
    public static void main(String[] args) {
        int a=34;
        int b=23;
        boolean f=a>b & a==b;
        System.out.println(f);
    }

}

​ 运行结果:false.

01.03逻辑或运算

​ 或者(|)的运算两端,只要任意一端为true其最终结果就为true,只有运算两端都为false了其最终结果就是false。

01.04逻辑非运算

​ 逻辑非(|)取反 true变false ,false变true。

public static void main(String[] args) {

    System.out.println(!true);
}

​ 运行结果:false。

特点:偶数个不改变本身。

01.05逻辑异或运算

​ ^(异或) 相同为false 不同为true。

​ true^false 结果是 true false^true 结果是true true^true false^false 结果是false。

public static void main(String[] args) {

    System.out.println(false ^ false);
    System.out.println(false ^ true);
}

运行结果:false和true。

01.06逻辑与(&&)运算

​ &(并且)和&&的区别:

​ & 左右两端的表达式都需要执行;

​ && 当左端为false 右端的表达式就执行了 ,&& 当左端为true时,右端的表达式还是有执行的。

01.07逻辑或(||)运算

​ |(或者) 和 ||(短路或) 的区别:

​ | 他两端的表达式都需要执行;
​ || 当左端为true时,右端的表达式就不执行了;
​ || 当左端为false时,右端的表达是还是要执行的。

注意事项:

​ a:逻辑运算符一般用于连接boolean类型的表达式或者值。
​ 在Java中我们要表示一个数大于3并且小于6 ,不可以写成3<x<6,应该写成 x>3 & x<6 。
​ b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
​ 算术表达式:a + b
​ 关系表达式:a == b

02位运算符

02.01位运算符有哪些

​ &(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)
​ ==注意事项:==位运算是直接对二进制补码进行运算。运算效率高一些。

02.02 &(与),|(或),^(异或)

​ & | ^ 如果两端是数值,就是位运算符,& | ^ 如果两端是布尔类型,那就是逻辑运算符

​ 注意事项:位运算是直接对二进制补码进行运算。运算效率高一些。

​ &:有0则0,例如:3&4

​ 0 0000011
​ 0 0000100

​ |:有1则1,例如:3|4

​ 0 0000011
​ 0 0000100

​ ^:相同则0,不同则1,例如:3 ^ 4

​ 0 0000011
​ 0 0000100

​ ^ 一个数,被另一个数位异或两次该数不变。自己跟自己位异或 结果是0。

02.03~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)

  1. ~:按位取反 0 变1, 1 变0 符号位也包含在内取反。
    例如: 0 0000011 它的补码 1 1111100 再取反。

  2. (左移)<< 例如:把3左移两位 (3<<2),被移除的高位丢弃,空位补0。

    例如:把 << 左边的数据乘以2的移动次幂 例如 10 << 3 结果 10 * 2 ^ 3 = 80

  3. (右移)>> 例如:(-3 >> 2)

​ 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1。

​ 例如:把 >> 左边的数据除以2的移动次幂 例如 40 >> 3 结果 40 / 2 ^ 3 = 5。

4.>>>:无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补。

​ 例如:-3 >>> 2

02.04值交唤

​ 方式1:通过 中间变量t,进行值交换,开发中常用,需要掌握。

public static void main(String[] args) {
    int a = 10;
    int b = 20;
    int t=a;
    a=b;
    b=t;
    System.out.println(a);
    System.out.println(b);
}

​ 方式2:利用^ 这个运算符 一个数被另一个数位异或两次该数不变。

public static void main(String[] args) {
    int a = 10;
    int b = 20;
    a=a^b;
    b=a^b;//a^b^b  b=a;
    a=a^b;//a^b^a a=b;
    System.out.println(a);
    System.out.println(b);
}

​ 方式3;

public static void main(String[] args) {
    int a = 10;
    int b = 20;
    a=a+b;
    b=a-b;
    a=a-b;
    System.out.println(a);
    System.out.println(b);
}

​ 方式4:

public static void main(String[] args) {
    int a = 10;
    int b = 20;
    a=(a+b)-(b=a);
    System.out.println(a);
    System.out.println(b);
}

03三元运算符

03.01三元(三目)运算符的格式

​ (关系表达式) ? 表达式1 : 表达式2;
​ 例如:int a=(10>20)?30:50; a=50

03.02三元运算符的执行流程

​ 计算关系表达式的值,如果为true, 运算后的结果是表达式1;
​ 如果为false,运算后的结果是表达式2;

public static void main(String[] args) {
    int a = 20;
    int b = 20;
    int c=500;

    int max=a>b?a:b;
    int max2=max>c?max:c;

    System.out.println("最大值是"+max2);

    //嵌套使用三元表达式,但是个人不建议嵌套,阅读性不好。
}

2. 键盘录入数据

01为什么要使用键盘录入数据

​ 为了让程序的数据更符合开发的数据,或者让程序更灵活一下。

02键盘录入的格式

​ a:导包
​ 格式:
​ import java.util.Scanner;
​ 位置:
​ 在class上面。
​ b:创建键盘录入对象
​ 格式:
​ Scanner sc = new Scanner(System.in);
​ c:通过对象获取数据
​ 格式:
​ int x = sc.nextInt();

即:

​ Scanner 类 可以做键盘录入,让用户来输入数据。

1.导入包
2.创建对象。
3.提示用户输入数据。
4.录入用户输入的数据。
5.处理数据。

​ 例如:

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入第一个数");
    int x = scanner.nextInt();
    System.out.println("请输入第二个数");
    int y = scanner.nextInt();
    int max=x>y?x:y;
    System.out.println("最大值是"+max);
}

运行结果:请输入第一个数
13
请输入第二个数
34
最大值是34

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值