Java基础知识(二)1.&和&&的区别;2.^(异或)的运算逻辑;3.位运算符,三元运算符的使用;4.if和switch的适用对象。

1.&和&&的区别

例1:

public class Test {
    public static void main(String[] args) {
        int x = 1,y = 1;
        if(x++==2 & ++y==2)
        {
            x =3;
        }
        System.out.println("x="+x+",y="+y);
    }
}

该例的运行结果为:
在这里插入图片描述
例2:

public class Test {
    public static void main(String[] args) {
        int x = 1,y = 1;
        if(x++==2 && ++y==2)
        {
            x =3;
        }
        System.out.println("x="+x+",y="+y);
    }
}

该例的运行结果为:
在这里插入图片描述
由以上两个例子可知:使用&符时,无论&符左右语句是true还是false,右边语句都要执行;而使用&&符时,&&左边语句为false时,右边语句不执行。

2.^(异或)的运算逻辑

aba^b
101
110
000
011

例1:

public class Test {
    public static void main(String[] args) {
        System.out.println("1^2="+(1^2));
    }
}

运行结果为:
在这里插入图片描述
将1和2分别化为2进制:1=00000001,2=00000010,00000001^00000010=00000011,
00000011化为10进制等于3。
例:用^(异或)实现两个数的调换:

import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一个数:");
        System.out.print("a=");
        int a=sc.nextInt();
        System.out.println("请输入第二个数:");
        System.out.print("b=");
        int b=sc.nextInt();
        a=a^b;
        b=a^b;
        a=a^b;
        System.out.println("两个数交换后为:");
        System.out.println("a="+a);
        System.out.println("b="+b);
    }
}

运行结果为:
在这里插入图片描述

3.位运算符

(1)<<:左移 空位补0,被移除的高位丢弃。
(2)>>:右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1。
(3)>>>:无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补。

例1:左移

public class Test {
    public static void main(String[] args) {
        byte x = 32;
        byte y = (byte)(x<<1);
        System.out.println("y="+y);
    }
}

运行结果为:
在这里插入图片描述
例2:右移

 public class Test {
    public static void main(String[] args) {
        byte x = 32;
        byte y = (byte)(x>>1);
        System.out.println("y="+y);
    }
}

运行结果为:
在这里插入图片描述
例3:无符号右移

public class Test {
    public static void main(String[] args) {
        byte x = 32;
        byte y = (byte)(x>>1);
        System.out.println("y="+y);
    }
}

运行结果为:
在这里插入图片描述

4.三元运算符的使用

(1)三元(三目)运算符的格式:
(关系表达式) ? 表达式1 : 表达式2;
int a=(10>20)?30:50; a=50
(2)三元运算符的执行流程:
计算关系表达式的值,如果为true, 运算后的结果是表达式1;
如果为false,运算后的结果是表达式2。

例:使用三元运算符获取两个数的最大值

import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数:");
        System.out.print("a=");
        int a = sc.nextInt();
        System.out.println("请输入第二个数:");
        System.out.print("b=");
        int b = sc.nextInt();
        int max = (a > b) ? a : b;
        System.out.println("max=" + max);
    }
}

运行结果为:
在这里插入图片描述

5.if和switch的适用对象

if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值