最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中自增和自減操作符(++/--)的那些事

 更新時(shí)間:2019年02月24日 09:57:32   作者:人無名,則可專心練劍  
這篇文章主要給大家介紹了關(guān)于Java中自增和自減操作符(++/--)的那些事,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

自增(++)和自減(--)運(yùn)算符

在JAVA語言中存在著很多運(yùn)算符,但是在實(shí)際開發(fā)中我們或許很少用到它們,在初次學(xué)習(xí)中卻時(shí)常出現(xiàn)它們的身影,對于這些運(yùn)算符的含義和用法,是否還記得呢?

1. 概述

自增操作符(++)和自減操作符(--)是對變量進(jìn)行加1和減1的操作。

2.分類說明

++和--是對變量進(jìn)行自增1和自減1的簡寫操作符。許多編程任務(wù)中經(jīng)常需要對變量加1或者減1,所以采用這兩個操作符會方便許多。例如,下面的代碼是對i自增1,而對j自減1:

int i = 3, j = 3;
i++; // i become 4
j--; // j become 2

i++讀為i加加,i--讀為i減減。這些操作符分別稱為后置自增操作符和后置自減操作符,因?yàn)椴僮鞣?+和--放在變量后面。這些操作符也可以放在變量前面,比如:

int i = 3, j = 3;
++i; // i becomes 4
--j; // j becomes 2

--i將i增加1,--j將j減去1。這些操作符稱為前置自增操作符和前置自減操作符。

如你所見,前面的例子中,i++和++i的效果,或者i--和--i的效果是一樣的。然而,當(dāng)用在表達(dá)式中不單純只進(jìn)行自增和自減時(shí),他們就會產(chǎn)生不同的效果。具體如下表,描述了自增和自減操作符的不同之處,并且給出了示例:

操作符

名稱

描述

示例(假設(shè)i=1)

++var

前置自增

將var加1,在語句中使用新的var值

Int j = ++i; // j is 2, i is 2

var++

后置自增

將var加1,但是在語句中使用原來的var值

Int j = i++; // j is 1, i is 2

--var

前置自減

將var減1,在語句中使用新的var值

Int j = --i; // j is 0, i is 0

var--

后置自減

將var減1,但是在語句中使用原來的var值

Int j = i--; // j is 1, i is 0


下面演示前置形式的++(或者--)和后置形式的++(或者--)的補(bǔ)充示例??紤]以下代碼:

int i = 10;
int newNum = 10 * i++; //左邊等價(jià)于---》 int newNum = 10 * i;
System.out.print("i is " + i //接上條 i = i + 1;
 + ", newNum is " + newNum);

執(zhí)行輸出:

i is 11, newNum is 100

上述中i自增1,然后返回i原來的值來參與乘法運(yùn)算。這樣,newNum的值就為100。如果如下所示將i++換為++i:

int i = 10;
int newNum = 10 * (++i); //左邊等價(jià)于---》 i = i + 1;
System.out.print("i is " + i //接上條 int newNum = 10 * i;
 + ", newNum is " + newNum);

執(zhí)行輸出:

i is 11, newNum is 110

上述中 i自增1,然后返回i的新值,并參與乘法運(yùn)算。這樣,newNum的值就為110。

下面是另一個例子:

double x = 1.0;
double y = 5.0;
double z = x-- + (++y);

在這三行程序執(zhí)行完之后,y的值為6.0,z的值為7.0,而x的值為0.0。

Java中從左到右對操作數(shù)求值。在右邊操作數(shù)的任何部分被求值之前,二元操作符左邊的操作數(shù)先求值。這一規(guī)則的優(yōu)先級高于表達(dá)式的任何其他規(guī)則。下面是一個例子:

int i = 1;
int k = ++i + i * 3;
// 分析可知: ++i求值后返回2。當(dāng)求i*3的值時(shí),i是2。因此k的值是8。

//------------對比以下代碼------------------
int i = 1;
int k = i*3 + ++i ;
// 分析可知:從左往右,當(dāng)求i*3的值時(shí),i是1,后算++i,++i整體是2。因此k的值是5。

3.總結(jié)

自增在平時(shí)的Java筆試和面試中經(jīng)常作為考查程序員的基礎(chǔ)題多次出現(xiàn),也是比較容易混淆的知識點(diǎn)。在平時(shí)編程中使用自增操作符和自減操作符可以使表達(dá)式更加簡短,但也會使他們比較復(fù)雜且難以讀懂。應(yīng)該避免在同一個表達(dá)式中使用這些操作符修改多個變量或多次修改同一個變量,如int k = ++i + i * 3。

4.說明

本文摘自《Java語言程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》(基礎(chǔ)篇)第11版第2章2.14節(jié)內(nèi)容,并由本人結(jié)合實(shí)例并補(bǔ)充擴(kuò)展了一些實(shí)例代碼,本文用于本人學(xué)習(xí)及經(jīng)驗(yàn)總結(jié)。

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Java通過反射將 Excel 解析成對象集合實(shí)例

    Java通過反射將 Excel 解析成對象集合實(shí)例

    這篇文章主要介紹了Java通過反射將 Excel 解析成對象集合實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • java poi解析word的方法

    java poi解析word的方法

    這篇文章主要為大家詳細(xì)介紹了java poi解析word的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • java同步器AQS架構(gòu)AbstractQueuedSynchronizer原理解析

    java同步器AQS架構(gòu)AbstractQueuedSynchronizer原理解析

    這篇文章主要為大家介紹了java同步器AQS架構(gòu)AbstractQueuedSynchronizer的底層原理及源碼解析,有需要的朋友可以借鑒參考下,希望能有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-03-03
  • IDEA搭建Maven模塊化項(xiàng)目的實(shí)現(xiàn)

    IDEA搭建Maven模塊化項(xiàng)目的實(shí)現(xiàn)

    本文主要介紹了IDEA搭建Maven模塊化項(xiàng)目的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • SpringBoot中事務(wù)失效的原因詳解

    SpringBoot中事務(wù)失效的原因詳解

    這篇文章主要介紹了SpringBoot中事務(wù)失效的原因詳解,spring中的事務(wù)是依賴AOP的,AOP是通過動態(tài)代理實(shí)現(xiàn)的,只有通過代理類訪問的方法才能被攔截,需要的朋友可以參考下
    2023-10-10
  • SpringCloud Zuul在何種情況下使用Hystrix及問題小結(jié)

    SpringCloud Zuul在何種情況下使用Hystrix及問題小結(jié)

    這篇文章主要介紹了SpringCloud Zuul在何種情況下使用Hystrix 及問題小結(jié),感興趣的朋友跟隨小編一起看看吧
    2018-11-11
  • SpringSecurity攔截器鏈的使用詳解

    SpringSecurity攔截器鏈的使用詳解

    這篇文章主要介紹了SpringSecurity攔截器鏈的使用詳解,webSecurity的build方法最終調(diào)用的是doBuild方法,doBuild方法調(diào)用的是webSecurity的performBuild方法,webSecurity完成所有過濾器的插件,最終返回的是過濾器鏈代理類filterChainProxy,需要的朋友可以參考下
    2023-11-11
  • Java 基礎(chǔ) byte[]與各種數(shù)據(jù)類型互相轉(zhuǎn)換的簡單示例

    Java 基礎(chǔ) byte[]與各種數(shù)據(jù)類型互相轉(zhuǎn)換的簡單示例

    這篇文章主要介紹了Java 基礎(chǔ) byte[]與各種數(shù)據(jù)類型互相轉(zhuǎn)換的簡單示例的相關(guān)資料,這里對byte[]類型對long,int,double,float,short,cahr,object,string類型相互轉(zhuǎn)換的實(shí)例,需要的朋友可以參考下
    2017-01-01
  • OpenFeign實(shí)現(xiàn)攜帶請求頭方案詳細(xì)介紹

    OpenFeign實(shí)現(xiàn)攜帶請求頭方案詳細(xì)介紹

    這篇文章主要介紹了OpenFeign實(shí)現(xiàn)攜帶請求頭方案,在通過???OpenFeign???進(jìn)行服務(wù)調(diào)用的過程中,我們需要將用戶的??user-token???、??lang??等信息放入請求header中。在分布式系統(tǒng)中,往往一個業(yè)務(wù)接口內(nèi)部會發(fā)生多次RPC調(diào)用
    2022-11-11
  • Java 8新特性 內(nèi)建函數(shù)式接口詳解

    Java 8新特性 內(nèi)建函數(shù)式接口詳解

    這篇文章主要介紹了Java 8新特性 內(nèi)建函數(shù)式接口詳解的相關(guān)資料,這里主要介紹4個基本函數(shù)式接口,需要的朋友可以參考下
    2016-12-12

最新評論

安徽省| 大姚县| 濮阳县| 轮台县| 湛江市| 遂宁市| 富民县| 思茅市| 富宁县| 西乡县| 泊头市| 科尔| 舒兰市| 杭锦后旗| 常州市| 类乌齐县| 宁陵县| 鸡东县| 信宜市| 分宜县| 抚远县| 天峻县| 波密县| 五河县| 鄂温| 卫辉市| 天津市| 仙桃市| 全南县| 佛学| 夏邑县| 会宁县| 洞口县| 卓资县| 三明市| 溧阳市| 泌阳县| 开平市| 皮山县| 惠水县| 博乐市|