国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java? 教程(運(yùn)算符)

taowen / 3138人閱讀

運(yùn)算符

既然你已經(jīng)學(xué)會(huì)了如何聲明和初始化變量,那么你可能想知道如何使用它們,學(xué)習(xí)Java編程語(yǔ)言的運(yùn)算符是一個(gè)很好的起點(diǎn),運(yùn)算符是對(duì)一個(gè)、兩個(gè)或三個(gè)操作數(shù)執(zhí)行特定運(yùn)算的特殊符號(hào),然后返回結(jié)果。

在我們探索Java編程語(yǔ)言的運(yùn)算符時(shí),提前知道哪些運(yùn)算符具有最高優(yōu)先級(jí)可能會(huì)對(duì)你有所幫助,下表中的運(yùn)算符按優(yōu)先順序列出,運(yùn)算符出現(xiàn)在離表頂部越近,其優(yōu)先級(jí)越高,優(yōu)先級(jí)較高的運(yùn)算符在優(yōu)先級(jí)相對(duì)較低的運(yùn)算符之前進(jìn)行求值。同一行上的運(yùn)算符具有相同的優(yōu)先權(quán),當(dāng)具有相同優(yōu)先級(jí)的運(yùn)算符出現(xiàn)在同一表達(dá)式中時(shí),規(guī)則必須控制首先計(jì)算的值,除了賦值運(yùn)算符之外的所有二元運(yùn)算符都是從左到右計(jì)算的,賦值運(yùn)算符從右到左進(jìn)行求值。

運(yùn)算符 優(yōu)先級(jí)
后綴 expr++ expr--
一元 ++expr --expr +expr -expr ~ !
乘法 * / %
加法 + -
位移 << >> >>>
關(guān)系 < > <= >= instanceof
等于 == !=
按位與 &
按位異或 ^
按位或 |
邏輯與 &&
邏輯或 ||
三元 ? :
賦值 = += -= *= /= %= &= ^= |= <<= >>= >>>=

在通用編程中,某些運(yùn)算符往往比其他運(yùn)算符更頻繁地出現(xiàn),例如,賦值運(yùn)算符“=”比無(wú)符號(hào)右移運(yùn)算符“>>>”更常見(jiàn),考慮到這一點(diǎn),以下討論首先關(guān)注你最有可能經(jīng)常使用的運(yùn)算符,并最終關(guān)注那些不太常見(jiàn)的運(yùn)算符。每個(gè)討論都附帶可以編譯和運(yùn)行的示例代碼,研究它的輸出將有助于加強(qiáng)你剛剛學(xué)到的東西。

賦值、算術(shù)和一元運(yùn)算符 簡(jiǎn)單賦值運(yùn)算符

你將遇到的最常見(jiàn)的運(yùn)算符之一是簡(jiǎn)單賦值運(yùn)算符“=”,你在Bicycle類(lèi)中看到了此運(yùn)算符,它將右側(cè)的值賦給左側(cè)的操作數(shù):

 int cadence = 0;
 int speed = 0;
 int gear = 1;

此運(yùn)算符也可用于對(duì)象以分配對(duì)象引用,如創(chuàng)建對(duì)象中所述。

算術(shù)運(yùn)算符

Java編程語(yǔ)言提供執(zhí)行加法,減法,乘法和除法的運(yùn)算符,很有可能你會(huì)被基礎(chǔ)數(shù)學(xué)方面的同行認(rèn)出來(lái),唯一可能看起來(lái)很新的符號(hào)是“”,它將一個(gè)操作數(shù)除以另一個(gè)操作數(shù),并將余數(shù)作為結(jié)果返回。

運(yùn)算符 描述
+ 加法運(yùn)算符(也用于字符串連接)
- 減法運(yùn)算符
* 乘法運(yùn)算符
/ 除法運(yùn)算符
% 取余運(yùn)算符

以下程序ArithmeticDemo測(cè)試算術(shù)運(yùn)算符。

class ArithmeticDemo {

    public static void main (String[] args) {

        int result = 1 + 2;
        // result is now 3
        System.out.println("1 + 2 = " + result);
        int original_result = result;

        result = result - 1;
        // result is now 2
        System.out.println(original_result + " - 1 = " + result);
        original_result = result;

        result = result * 2;
        // result is now 4
        System.out.println(original_result + " * 2 = " + result);
        original_result = result;

        result = result / 2;
        // result is now 2
        System.out.println(original_result + " / 2 = " + result);
        original_result = result;

        result = result + 8;
        // result is now 10
        System.out.println(original_result + " + 8 = " + result);
        original_result = result;

        result = result % 7;
        // result is now 3
        System.out.println(original_result + " % 7 = " + result);
    }
}

該程序打印以下內(nèi)容:

1 + 2 = 3
3 - 1 = 2
2 * 2 = 4
4 / 2 = 2
2 + 8 = 10
10 % 7 = 3

你還可以將算術(shù)運(yùn)算符與簡(jiǎn)單賦值運(yùn)算符組合以創(chuàng)建復(fù)合賦值,例如,x+=1;x=x+1;都將x的值遞增1。

+運(yùn)算符也可用于將兩個(gè)字符串連接(連接)在一起,如下面的ConcatDemo程序所示:

class ConcatDemo {
    public static void main(String[] args){
        String firstString = "This is";
        String secondString = " a concatenated string.";
        String thirdString = firstString+secondString;
        System.out.println(thirdString);
    }
}

在該程序結(jié)束時(shí),變量thirdString包含“This is a concatenated string.”,它被打印到標(biāo)準(zhǔn)輸出。

一元運(yùn)算符

一元運(yùn)算符只需要一個(gè)操作數(shù),它們執(zhí)行各種操作,例如將值遞增/遞減1,否定表達(dá)式或反轉(zhuǎn)布爾值。

運(yùn)算符 描述
+ 一元加運(yùn)算符,表示正值(但是沒(méi)有這個(gè),數(shù)字也是正數(shù))
- 一元減運(yùn)算符,否定表達(dá)式
++ 增量運(yùn)算符,將值遞增1
-- 遞減運(yùn)算符,將值減1
! 邏輯補(bǔ)碼運(yùn)算符,反轉(zhuǎn)布爾值

以下程序UnaryDemo測(cè)試一元運(yùn)算符:

class UnaryDemo {

    public static void main(String[] args) {

        int result = +1;
        // result is now 1
        System.out.println(result);

        result--;
        // result is now 0
        System.out.println(result);

        result++;
        // result is now 1
        System.out.println(result);

        result = -result;
        // result is now -1
        System.out.println(result);

        boolean success = false;
        // false
        System.out.println(success);
        // true
        System.out.println(!success);
    }
}

可以在操作數(shù)之前(前綴)或之后(后綴)應(yīng)用遞增/遞減運(yùn)算符,代碼result++;++result;將兩個(gè)結(jié)果都加1。唯一的區(qū)別是前綴版本(++result)評(píng)估為增量值,而后綴版本(result++)評(píng)估為原始值。如果你只是執(zhí)行簡(jiǎn)單的增量/減量,那么選擇哪個(gè)版本并不重要,但是,如果你在較大的表達(dá)式中使用此運(yùn)算符,則你選擇的運(yùn)算符可能會(huì)產(chǎn)生顯著差異。

以下程序PrePostDemo演示了前綴/后綴一元增量運(yùn)算符:

class PrePostDemo {
    public static void main(String[] args){
        int i = 3;
        i++;
        // prints 4
        System.out.println(i);
        ++i;               
        // prints 5
        System.out.println(i);
        // prints 6
        System.out.println(++i);
        // prints 6
        System.out.println(i++);
        // prints 7
        System.out.println(i);
    }
}
等于、關(guān)系和條件運(yùn)算符 等于與關(guān)系運(yùn)算符

等于和關(guān)系運(yùn)算符確定一個(gè)操作數(shù)是否大于,小于,等于或不等于另一個(gè)操作數(shù),這些運(yùn)算符中的大多數(shù)也可能看起來(lái)很熟悉,請(qǐng)記住,在測(cè)試兩個(gè)原始值是否相等時(shí),必須使用“==”而不是“=”。

運(yùn)算符 描述
== 等于
!= 不等于
> 大于
>= 大于或等于
< 小于
<= 小于或等于

以下程序ComparisonDemo測(cè)試比較運(yùn)算符:

class ComparisonDemo {

    public static void main(String[] args){
        int value1 = 1;
        int value2 = 2;
        if(value1 == value2)
            System.out.println("value1 == value2");
        if(value1 != value2)
            System.out.println("value1 != value2");
        if(value1 > value2)
            System.out.println("value1 > value2");
        if(value1 < value2)
            System.out.println("value1 < value2");
        if(value1 <= value2)
            System.out.println("value1 <= value2");
    }
}

輸出:

value1 != value2
value1 <  value2
value1 <= value2
條件運(yùn)算符

&&||運(yùn)算符對(duì)兩個(gè)布爾表達(dá)式執(zhí)行條件與和條件或運(yùn)算,這些運(yùn)算符表現(xiàn)出“最少運(yùn)算”行為,這意味著僅在需要時(shí)才評(píng)估第二個(gè)操作數(shù)。

運(yùn)算符 描述
&& 條件與
|| 條件或

以下程序ConditionalDemo1測(cè)試這些運(yùn)算符:

class ConditionalDemo1 {

    public static void main(String[] args){
        int value1 = 1;
        int value2 = 2;
        if((value1 == 1) && (value2 == 2))
            System.out.println("value1 is 1 AND value2 is 2");
        if((value1 == 1) || (value2 == 1))
            System.out.println("value1 is 1 OR value2 is 1");
    }
}

另一個(gè)條件運(yùn)算符是?:,這可以被認(rèn)為是if-then-else語(yǔ)句的簡(jiǎn)寫(xiě)(在本課程的控制流語(yǔ)句部分中討論),此運(yùn)算符也稱為三元運(yùn)算符,因?yàn)樗褂萌齻€(gè)操作數(shù),在以下示例中,應(yīng)將此運(yùn)算符讀作:“如果someConditiontrue,則將value1的值賦給result,否則,將value2的值賦給result。”

以下程序ConditionalDemo2測(cè)試?:運(yùn)算符:

class ConditionalDemo2 {

    public static void main(String[] args){
        int value1 = 1;
        int value2 = 2;
        int result;
        boolean someCondition = true;
        result = someCondition ? value1 : value2;

        System.out.println(result);
    }
}

因?yàn)?b>someCondition為true,所以此程序在屏幕上打印“1”,如果它使代碼更具可讀性,請(qǐng)使用?:運(yùn)算符而不是if-then-else語(yǔ)句,例如,當(dāng)表達(dá)式緊湊且沒(méi)有副作用(例如賦值)時(shí)。

類(lèi)型比較運(yùn)算符instanceof

instanceof運(yùn)算符將對(duì)象與指定的類(lèi)型進(jìn)行比較,你可以使用它來(lái)測(cè)試對(duì)象是否是類(lèi)的實(shí)例,子類(lèi)的實(shí)例或?qū)崿F(xiàn)特定接口的類(lèi)的實(shí)例。

以下程序InstanceofDemo定義了一個(gè)父類(lèi)(名為Parent),一個(gè)簡(jiǎn)單的接口(名為MyInterface)和一個(gè)繼承自父類(lèi)并實(shí)現(xiàn)接口的子類(lèi)(名為Child)。

class InstanceofDemo {
    public static void main(String[] args) {

        Parent obj1 = new Parent();
        Parent obj2 = new Child();

        System.out.println("obj1 instanceof Parent: "
            + (obj1 instanceof Parent));
        System.out.println("obj1 instanceof Child: "
            + (obj1 instanceof Child));
        System.out.println("obj1 instanceof MyInterface: "
            + (obj1 instanceof MyInterface));
        System.out.println("obj2 instanceof Parent: "
            + (obj2 instanceof Parent));
        System.out.println("obj2 instanceof Child: "
            + (obj2 instanceof Child));
        System.out.println("obj2 instanceof MyInterface: "
            + (obj2 instanceof MyInterface));
    }
}

class Parent {}
class Child extends Parent implements MyInterface {}
interface MyInterface {}

輸出:

obj1 instanceof Parent: true
obj1 instanceof Child: false
obj1 instanceof MyInterface: false
obj2 instanceof Parent: true
obj2 instanceof Child: true
obj2 instanceof MyInterface: true

使用instanceof運(yùn)算符時(shí),請(qǐng)記住null不是任何實(shí)例。

按位和位移運(yùn)算符

Java編程語(yǔ)言還提供對(duì)整數(shù)類(lèi)型執(zhí)行按位和位移操作的運(yùn)算符,本節(jié)中討論的運(yùn)算符不太常用,因此,他們的報(bào)道很簡(jiǎn)短,目的是讓你意識(shí)到這些運(yùn)算符的存在。

一元按位補(bǔ)碼運(yùn)算符“?”反轉(zhuǎn)位模式,它可以應(yīng)用于任何整數(shù)類(lèi)型,使每個(gè)“0”為“1”,每個(gè)“1”為“0”,例如,一個(gè)字節(jié)包含8位,將此運(yùn)算符應(yīng)用于位模式為“00000000”的值會(huì)將其模式更改為“11111111”。

帶符號(hào)的左移運(yùn)算符“<<”將位模式向左移位,帶符號(hào)的右移運(yùn)算符“>>”將位模式向右移位,位模式由左側(cè)操作數(shù)給出,以及由右側(cè)操作數(shù)移位的位置數(shù)。無(wú)符號(hào)右移運(yùn)算符“>>>”將零移動(dòng)到最左側(cè)位置,而“>>”之后的最左側(cè)位置取決于符號(hào)擴(kuò)展。

按位運(yùn)算符執(zhí)行按位與運(yùn)算。
按位^運(yùn)算符執(zhí)行按位異或運(yùn)算。
按位|運(yùn)算符執(zhí)行按位或運(yùn)算。

以下程序BitDemo使用按位與運(yùn)算符將數(shù)字“2”打印到標(biāo)準(zhǔn)輸出。

class BitDemo {
    public static void main(String[] args) {
        int bitmask = 0x000F;
        int val = 0x2222;
        // prints "2"
        System.out.println(val & bitmask);
    }
}
運(yùn)算符總結(jié)

以下快速參考總結(jié)了Java編程語(yǔ)言支持的運(yùn)算符。

簡(jiǎn)單的賦值運(yùn)算符
= 簡(jiǎn)單賦值運(yùn)算符
算術(shù)運(yùn)算符
+ 加法運(yùn)算符(也用于字符串連接)
- 減法運(yùn)算符
* 乘法運(yùn)算符
/ 除法運(yùn)算符
% 取余運(yùn)算符
一元運(yùn)算符
+ 一元加運(yùn)算符,表示正值(但是沒(méi)有這個(gè),數(shù)字也是正數(shù))
- 一元減運(yùn)算符,否定表達(dá)式
++ 增量運(yùn)算符,將值遞增1
-- 遞減運(yùn)算符,將值減1
! 邏輯補(bǔ)碼運(yùn)算符,反轉(zhuǎn)布爾值
等于和關(guān)系運(yùn)算符
== 等于
!= 不等于
> 大于
>= 大于或等于
< 小于
<= 小于或等于
條件運(yùn)算符
&& 條件與
|| 條件或
?: 三元(簡(jiǎn)寫(xiě)的if-then-else語(yǔ)句)
類(lèi)型比較運(yùn)算符
instanceof 將對(duì)象與指定類(lèi)型進(jìn)行比較
按位和位移運(yùn)算符
~ 一元按位補(bǔ)碼
<< 帶符號(hào)左移
>> 帶符號(hào)右移
>>> 無(wú)符號(hào)右移
& 按位與
^ 按位異或
| 按位或
上一篇:變量 下一篇:表達(dá)式、語(yǔ)句和塊

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/76444.html

相關(guān)文章

  • Java? 教程(目錄)

    Java? 教程 Java教程是為JDK 8編寫(xiě)的,本頁(yè)面中描述的示例和實(shí)踐沒(méi)有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語(yǔ)言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書(shū)籍的形式提供,如Java教程,第六版,前往Amazon.com購(gòu)買(mǎi)。 入門(mén) 介紹Java技術(shù)和安裝Java開(kāi)發(fā)軟件并使用...

    lifesimple 評(píng)論0 收藏0
  • Java? 教程(表達(dá)式、語(yǔ)句和塊)

    表達(dá)式、語(yǔ)句和塊 現(xiàn)在你已了解變量和運(yùn)算符,現(xiàn)在是時(shí)候了解表達(dá)式、語(yǔ)句和塊,運(yùn)算符可用于構(gòu)建計(jì)算值的表達(dá)式,表達(dá)式是語(yǔ)句的核心組件,語(yǔ)句可以分組為塊。 表達(dá)式 表達(dá)式是由變量、運(yùn)算符和方法調(diào)用組成的構(gòu)造,它是根據(jù)語(yǔ)言的語(yǔ)法構(gòu)造的,其值為單個(gè)值,你已經(jīng)看過(guò)表達(dá)式的示例,如下面所示: int cadence = 0; anArray[0] = 100; System.out.println(Eleme...

    邱勇 評(píng)論0 收藏0
  • Java? 教程(字符串)

    字符串 在Java編程中廣泛使用的字符串是一系列字符,在Java編程語(yǔ)言中,字符串是對(duì)象。 Java平臺(tái)提供String類(lèi)來(lái)創(chuàng)建和操作字符串。 創(chuàng)建字符串 創(chuàng)建字符串的最直接方法是編寫(xiě): String greeting = Hello world!; 在這種情況下,Hello world!是一個(gè)字符串文字 — 代碼中的一系列字符,用雙引號(hào)括起來(lái),每當(dāng)它在代碼中遇到字符串文字時(shí),編譯器就會(huì)創(chuàng)建一個(gè)帶...

    ThreeWords 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<