Java入门基础知识(2)---运算符号

1.java中算数运算的结果默认为int类型,会直接去除小数点

int a=10;

int b=4;

System.out.println(a/b);//打印结果为:2

System.out.println(a%b);//打印结果为:2

(取模%运算 可以用于浮点型数据计算)

2.++ -- 运算符 表示对变量的自增 或者自减的操作

运算符在后面 表示先自增,再被使用

int a=1;

System.out.println(++b); //打印结果为2

*如果继续判断i的值,不需要关心++ --运算符的先后顺序;只需要关心 从头到尾i加减了几次就可以了

int i=0; 

int b= (i++)+(--i)-(i--)+(++i)-(--i);
int c=(--i)+(i--)+(++i)-(--i)+(i--); 

解:

        int i=0; 

                               int b= (i++)+(--i)-(i--)+(++i)-(--i);

当前括号运算式的值:       0       0     0      0       -1

运算之后i的值:                1        0     -1     0       -1

所以:b=0+0-0+0-(-1)=1


                              int c=(--i)+(i--)+(++i)-(--i)+(i--); 

当前括号运算式的值:   -2     -2    -2    -3     -3

运算之后i的值:             -2     -3    -2    -3     -4

所以:c=(-2)+(-2)+(-2)+-(-3)+(-3)=-6

最后i的结果为:i=-4

3.关系运算符

==  判断是否相等

!= 判断是否不相等

>    <    >=    <=

4.逻辑运算符

①短路与 &&;    短路或  ||

*如果运算符左侧结果能够决定整个运算结果;右侧的运算就不会执行

②与 & ;  或 |

&  |  不管左侧运行结果;右侧的表达式一定会执行

5.位运算符(二进制的位)

&  按位与运算

|   按位或运算

^  按位异或运算

~  按位取反运算

<< 左移运算

>> 右移运算

①按位与运算  & (全是1,则为1;否则为0)

*参与运算的两个数字值,如果对应位数都为1,则该位的结果为1;否则为0

0&0=0   0&1=0  1&1=1

  9:1001

10:1010

——————

        1000

System.out.println(9&10); //打印的结果为:8

②按位或运算  | (全是0,则为0;否则为1)

*参与运算的两个值,如果都为0,则为0;否则为1

0|0=0   0|1=1  1|1=1

  9:1001

10:1010

——————

        1011

System.out.println(9|10);//打印的结果为:11

③按位异或运算 ^

*参与运算的两个值,如果其中一个是1,另外一个是0,则结果为1;

                                  如果两个都为0或者两个都为1,结果为0.

0^0=0    0^1=1    1^0=1    1^1=0

④按位取反运算(属于一元运算符)

~0=1

~1=0

⑤左移运算符  <<

高位溢出;低位补0     在不产生溢出的情况下,每左移一位,相当于乘2

例:7<<2

7:    1    1    1

________________左移两位

      1     1     1    0    0

System.out.println(7<<2);//打印的结果为:28

⑥右移运算符  >>

相当于二进制的每一位相当于小数点的位置 向右移动

低位被舍弃 高位代替原来高位的值 右移一位相当于是除2取商

例:7>>2

7:    1    1    1

____________右移两位

       0    0     1

System.out.println(7>>2); //打印的结果为:1

⑦赋值运算符  =(一般不用)

int i=1;

int a,b,c,d,e;

a=b=c=d=e=i;

⑧三元表达式(类似于if else)

(1)

条件表达式 ?值1:值2

int age =18;

String status=age>=18?"成年":"未成年";

System.out.println(status);

(2)

String status="";

int age =18;

if(age>=18){

status="成年";

}else{

status="未成年";

}

作业:


package com.iweb.Test24;

public class Grade {
    public static void main(String[] args) {
//        已知90分以上为优秀,80以上良好,60以上及格,其他不及格
//        定义变量grade 并提供初始值 根据成绩不同打印不同的等第
//        分别使用三元表达式和if else完成
//        提示:三元表达式需要进行嵌套使用
        int grade=89;
        String level=grade>=90?"优秀":grade<90&&grade>=80?"良好":grade<80&&grade>=60?"及格":"不及格";
        System.out.println(level);
    }
}

******打印结果*********
良好

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值