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,再進行運算。
 */
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章