JAVA运算符,程序举例

JAVA运算符,程序举例

package JAVA_Project_01_02;

public class TextOperator {//操作运算符应用的类
    int a=6,b=5;
    byte c=23,d=24;
    boolean e=true,f=false;
    private void calculateOperator(){//算术运算符应用
        int divideA=a/b;
        //根据基本类型自动转换规则,除数都是整数,得到的结果也是整数。啊/b结果是1,而不是1.2
        float divideB=a/b;
        float divideC=a/(b*2.0f);//对于声明为float类型的数字,数字后加f
        double divideD=a/(b*2.0d);//对于声明为double类型的数字,数字后加d
        System.out.println("(divideA=a/b),divideA="+divideA);
        System.out.println("(divideB=a/b),divideB="+divideB);
        System.out.println("(divideC=a/(b*2.0f)),divideA="+divideC);
        System.out.println("(divideD=a/(b*2.0d),divideA="+divideD);
    }
    private  void compareOperator(){//比较运算符的应用
        System.out.println("a==b="+(a==b));
        System.out.println("(a>b)="+(a>b));
        System.out.println("a<b="+(a<b));
        System.out.println("a!=b="+(a!=b));
        System.out.println("a>=b="+(a>=b));
        System.out.println("a<=b="+(a<=b));
        System.out.println("a=b="+(a=b));
    }
    private void evaluateOperator(){//赋值运算符应用
        //+=运算符是先将运算符左边的操作符的值加上右边的操作数的值,
        //将结果在赋值给运算符左边的操作符
        a+=1;//等价于a=a+1;
        System.out.println("a+=1的值为:"+a);
        a-=1;//等价于a=a-1;
        System.out.println("a-=1的值为:"+a);
        a/=2;//等价于a=a/1;
        System.out.println("a/=2的值为:"+a);
        a*=2;//等价于a=a*1;
        System.out.println("a*=2的值为:"+a);
        a&=2;//等价于a=a&1;
        System.out.println("a&=2的值为:"+a);
        a|=2;//等价于a=a|1;
        System.out.println("a|=2的值为:"+a);
        a^=2;//等价于a=a^1;
        System.out.println("a^=2的值为:"+a);
    }
    private  void  bitOperator(){//位运算符的应用
        int bitA=a&b;//按位与,两个运算数都为1 时,结果为1,其余结果为0
        int bitB=a|b;//按位或,两个运算数都为0 时,结果为0,其余结果为1
        int bitC=a^b;//按位异或,两个运算数相同时结果为0,不同时结果为1
        int bitD=~b;//按位非,0变1,1变0
        int a=6;//重新赋值
        int bitE=a>>1;//右移,左边空出位以0来补充
        int bitF=a>>>1;//右移,左边空出位以0补充
        int bitG=a<<1;//左移,右边空出位以0填充
        System.out.println("(bitA=a&b),bit=A"+bitA);
        System.out.println("(bitB=a|b),bitB="+bitB);
        System.out.println("(bitC=a^b),bitC="+bitC);
        System.out.println("(bitD=~a),bit=D"+bitD);
        System.out.println("(bitE=a>>1),bitE="+bitE);
        System.out.println("(bitF=a>>>1),bitF="+bitF);
        System.out.println("(bitG=a<<1),bitG="+bitG);
    }
    private void booleanOperator(){//布尔运算符应用
        boolean booA=e&&f;//与,当所有操作数都为true时,结果返回true,否则为false
        boolean booB=e||f;//或=,当一方操作数为true时,就返回true
        boolean booC=e&&(a==b);//所有操作数为false时,返回false
        boolean booD=e||((a==b)==f);
        System.out.println("(booA=e&&f),booA="+booA);
        System.out.println("(booB=e||f),booB="+booB);
        System.out.println("(booC=e&&(a==b)),booC="+booC);
        System.out.println("(booD=e||((a==b)==f))booD="+booD);//注意&&是短路与,意思是:当对操作数的表达式进行从左到右运算时
        //若遇到有操作数的值为false,则结束运算,将结果置为false
        if(e&&(a=b)==10)
            System.out.println("a="+a);
        if (f||(a=b)==10)
            System.out.println("a="+a);
        //||运算符:对操作数进行或运算,当所有操作数都为false时,结果为false,否则结果为true
        if (f||(b==a-1))
            System.out.println("a="+a);
        if (e||((b--)==++b))
            System.out.println("b="+b);
        //对操作数的值进行取反运算,操作数为true,取反为false
        if (!f)
            System.out.println("布尔变量f为false,取反后值为"+(!f));
        //运算符, 和||一样,对操作数进行或操作,但它不是短路的
        if (e|(a=b)==10)
            System.out.println("a="+a);
        if (f|(a-b)==10)
            System.out.println("a="+a);
        if (e&(a=b)==10)
            System.out.println("a="+a);
        if (f&(a=b)==10)
            System.out.println("a="+a);
        //……运算符,对操作数做异或操作,相同为false,不同为true
        if(e^(b==a-1))
            System.out.println("布尔变量e值与(b==a-1)的值不同!");
        else{
            System.out.println("布尔变量e值与(b==a-1)的值相同!");
        }
    }
    private void otherOperator(){//其他运算符应用
        int oA=(a>=b)?1:0;//可以用三元运算符代替简单的if语句
        //格式x=a?b:c
        System.out.println("(oA=(a>=b)?)1:0,oA的值为"+oA);
        if (b++==a)//b++表示先进行运算,在将b的值加1
            System.out.println("表达式(b++==a)的值为true!");
        else
            System.out.println("表达式(b++==a)的值为false!");
        if (++b==a)//++b表示先将b的值加1,再进行运算
            System.out.println("表达式(++b==a)的值为true!");
        else
            System.out.println("表达式(++b==a)的值为false!");
        a--;//a--表示先将a的值运算,再将a的值减1
        --a;//--a表示先将a的值减1,再进行运算
        System.out.println("a的值为:"+a);
    }

    public static void main(String[] args) {//java程序的主入口处
        TextOperator operator=new TextOperator();//实例化一个对象
        System.out.println("1.算术运算符应用方法:");
        operator.calculateOperator();//调用算术运算符应用方法
        System.out.println("2.比较运算符应用方法:");
        operator.compareOperator();//调用比较运算符应用方法
        System.out.println("3.赋值运算符应用方法:");
        operator.evaluateOperator();//调用赋值运算符应用方法
        System.out.println("4.位运算符应用方法:");
        operator.bitOperator();//调用位运算符应用方法
        System.out.println("5.布尔运算符应用方法:");
        operator.booleanOperator();//调用布尔运算符应用方法
        System.out.println("6.其他运算符应用方法:");
        operator.otherOperator();//调用其他运算符应用方法
    }
}
/*(1)在calculOperator()方法中,对啊于除法运算,当除数都是整型时,若除不尽取整数部分。当除数和被除数不全是整型时,结果要声明为符点型,否则要进行强制转换。
(2)在compareOperator()方法中,比较两个数是否相等用双等号,而不是等号。等号代表对变量进行复制。
(3)evaluateOperator()方法是讲解赋值运算符的运用。
(4)在bitOperator()方法中,“>>”是将数字按二进制位右移,左边空出位以0填充;"<<"是将数字按二进制位左移,右边空位以0填充;”>>“与”>>>“对于正整数操作没有什么区别,对于负数差别就大了。
(5)在booleanOperator()方法中,当”&&“左边的表达式值为false时,右边的表达式就不用计算了,整个表达式的值为false时,右边的表达式就不用计算了,整个表达式的值为false;当”&&“左边的表达式值为true时,就要计算右边的表达式,右边表达式的结果关系到整个表达式的结果。而”&“运算符不同,无论它左边链接的表达式的值是什么,都会计算右边表达式的值,整个表达式最后得到结果与”&&“得到的一样。”||“与”|“的区别和”&&“与”&“的区别一样。
(6)在OtherOperator()方法中,a++与++a的区别:a++是先进行运算,再将a的值加1,++a是先将a的值加1,再进行运算。
 */
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值