java基础

j2se运算符问题

本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:
运算符的分类

- a.从功能分

  • 1.算数运算符
  • 2.赋值运算符
  • 3.关系运算符
  • 4.逻辑运算符
  • 5.位运算符
  • 6.移位运算符

-b.按运算符操作的元素个数分

-1.一元运算符
-2.二元运算符
-3.三元运算符
// 运算符:
// * a:从功能分类
// * 1.算数运算符 + - * / % ++ –
int a=3,b=4;
System.out.println(a+b);
System.out.println(-2/-1);//整数相除得到的一定是整数 与普通的运算规则一致
System.out.println(3%-2);// 1 余数的符号与被余数一致

        //++(自增)  --(自减)
        //研究++:默认一次增加一
        /*
         * 当++在变量后时,变量会使用当前的值参与运算,之后在自身加一
         * 当++在变量前时,变量会首先自身加一,之后会用当前的值在参与运算
         */
        int q=2,w=1,y=0,x;
        x=q++;
        y=++w;
        System.out.println(x+"  "+y+"  "+q+"   "+w);

// * 2.赋值运算符 = += -= *= /= %=
int z=3,z1=2;//一个变量在使用之前必须先赋值
z1+=z;//z1=z1+z;
System.out.println(z1);

        //实例:算 n,u,m,o的值
        int n=2,m=3,u=1,o=0;
        o=n++ - --m + (u++ - n--);
        System.out.println(n+"  "+u+"  "+m+"   "+o);//2  2  2   -2
        /*
         * 实例的分析:先考虑优先级,优先级相同在考虑结合性。先考虑优先级低的,使用排除法,将优先级搞得找出来,在一步步运算。
         * 1.先考虑=,使用排除法,根据右结合性,先算=的右边
         * 2.再考虑()外的-,+,根据左结合性
         * 3.算n++      n=3    n++=2
         * 4.算--m      m=2    --m=2
         * 5.算()              (1-3)=-2  u++=1  u=2   n=2
         * 6.算2中的- +     2-2+1-3=-2
         * 7.算=  将值赋给o=2
         */

// * 3.关系运算符 > < <= >= != ==
//注意点:返回值只有两个 true/false
System.out.println(2>3);//false
// * 4.逻辑运算符 &&(与) ||(或)
//特点:运算的结果是true/false 参与运算的元素也必须是true/false
/*
* &&(与):全真则真,一假则假
* ||(或):全假则假,一真则真
* !(非):假则真,真则假
*
* 短路与(&&):当有多个&&连接的时候,从左往右运算,只要得到一个false,就会停止运算,最终结果为false
* 短路或:当有多个||连接的时候,从左往右运算,只要得到一个true,就会停止运算,整个结果就是true。
*/
System.out.println(true&&false);//false
System.out.println(2<3 || false);//true
System.out.println(!true);//false

        //推出的r的值是2,说明出现false之后,停止了运算。这个思路只适用于连续的&& 或者 连续的||,一旦出现其他运算符,就要单独进行运算。
        int r=2;
        boolean istrue=2>1&&3<4&& 4>5&&r++>9;
        System.out.println(istrue+"  r:"+r);//false  r:2

// * 5.位运算符:直接操作的是位 &(按位与):全一则一,有0则0 |(按位或):全0则0吗,有1则1
//^(按位异或):参与运算的当前位相同则是0,不同则1 ~(按位取反):1就取0,0就取1
//问题:有了普通的运算符,为什么还要有位运算符?
//答:;速度快效率高,因为直接操作的是二进制。
//实例:13和7
/*
* 1101 13
* 0111 7
*
* 0101 &
* 1111 |
* 1010 ^
*/
//通过^实现两个数的交换,不在需要借助第三个变量
int t=4,h=5;
t=t^h;
h=t^h;
t=t^h;
System.out.println(t+” “+h);
/*
* 分析:
* 0100 4
* 0101 5
*
* 0001 t
* 0101 5
*
* 0100 h=4
* 0001 t
*
* 0101 t=5
*/
// * 6.位移运算符:直接操作的位 >>1 右移一位:表示除以二 <<1 左移一位:表示乘以二 >>>1无符号右移 <<<1无符号左移
//只能用于整数的运算。
System.out.println(5>>1);//2

        /*
         * 表达式:由变量和常量以及运算符组成的式子
         * 语句:表达式+;   注意点:如果只有一个; 也叫语句---空语句
         */

// * b:按运算符操作的元素个数
// * 一元(元素)运算符:++ – ~ ! -(负号) +(正号)
// * 二元运算符:+ - * /
// * 三元运算符:三目运算符:?:—表达式一<表达式二?变量一:变量二
//解释:先让表达式一与表达式二比较,如果是true,整个式子的结果就是变量一的值。如果是false就取变量二的值。
int a2=3,a3=5;
System.out.println(a2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值