JavaDay06

Java学习06

自增/自减符

自增/自减运算符称为一元运算符

int a=3;
int b=a++;//执行完这段代码后,先给b赋值,再自增
//a++ = a + 1
int c=++a;//执行完这段代码前,先自增,再给b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);

结果为:

在这里插入图片描述

我们不妨做出设想,在定义c之前先输出a的值

可见如下:

在这里插入图片描述

可得此时a的值如下

在这里插入图片描述

此时a的值为4,但b的值为3,说明此时为先赋值再自增。

执行完a的自增之后,a的值为4,而输出的c值为5,说明a又进行了一次自增,才把自增后的值赋给了c。

自减则同理

幂运算

幂运算需要调用“Math方法”且从中寻得“pow”参与运算

double pow =Math.pow(2,3);
 System.out.println(pow);

结果为:

在这里插入图片描述

计算方式与C语言略同,但调用的方法不同

很多运算,我们会使用一些工具类来操作!

逻辑运算符

与(&&) 或(||) 非(!)

boolean a= true;
boolean b= false;
        System.out.println("a&&b:"+(a&&b));
        System.out.println("a||b:"+(a||b));
        System.out.println("!(a&&b):"+!(a&&b));

结果如下

在这里插入图片描述

说明:

  • 逻辑与运算:两个变量都为真,结果才为true。

  • 逻辑或运算:两个变量有一个为真,则结果为true。

  • 逻辑非运算:如果是真,则变为假,如果是假则变为真。

    短路运算

    int c =5;
    boolean d=(c<4)&&(c++<4);
            System.out.println(d);
            System.out.println(c);
    

结果如下

在这里插入图片描述

由于“与运算”需要两个都为真结果才为真,所以当程序执行到“c<4”时,就已经判定为假了,因此不再执行下一个程序,也就是“c++<4”,所以在结果看来,c并没有完成自增

若是前半段代码为真,结果会如何?

int c =5;
boolean d=(c>4)&&(c++<4);
        System.out.println(d);
        System.out.println(c);

结果如下

在这里插入图片描述

可见此时c已完成了自增,因此,若是前半段代码畅行可通,才会继续执行下一段代码,否则会直接判定为假

位运算

  1. 与(&):两个位都为1时,结果才为1
  2. 或(|):两个位都为0时,结果才为0
  3. 异或(^):两个位相同为0,相异为1
  4. 取反(~):0变1,1变0
  5. 左移(<<):各二进位全部左移若干位,高位丢弃,低位补0
  6. 右移(>>):各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)

在这里插入图片描述

重温二进制(左移铺垫)

0000 0000     0
0000 0001     1
0000 0010     2
0000 0011     3
0000 0100     4
0000 1000     8
0001 0000     16

因此,数字左移一位,数字变大了,相当于将此数字乘以2。

右移同理,右移一位,相当于将此数字除以2。

int a=6;
        System.out.println(a>>1);

结果为

在这里插入图片描述

即结果为6除以2的值。

扩展赋值运算符

a+ = b//a = a+b
a- = b//a = a-b

字符串连接符( + ,String)

int a=10;
int b=20;
        System.out.println(""+a+b);

结果为

在这里插入图片描述

相当于将两个数连接起来

对比

System.out.println(a+b+"");

则结果为

在这里插入图片描述

三元运算符

内容: x ? y : z

意思为:如果 x==true,则结果为y,否则结果为z。

int score=50;
        String type= score <60?"不及格":"及格";
        System.out.println(type);

结果如下

在这里插入图片描述

若将分数改为60

int score=50;        String type= score <60?"不及格":"及格";        System.out.println(type);

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值