java自加和自減運(yùn)算過程
廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:
public class Add {
public static void main(String[] args) {
int i = 0;
i=i++ + ++i;
int j = 0;
j= ++j + j++ + j++ + j++;
int k = 0;
k=k++ + k++ + k++ + ++k;
int h = 0;
h=++h + ++h;
int p1=0,p2=0;
int q1=0,q2=0;
q1=+p1;
q2=p2++;
System.out.println("i "+i);
System.out.println("j "+j);
System.out.println("k "+k);
System.out.println("h "+h);
System.out.println("p1 "+p1);
System.out.println("p2 "+p2);
System.out.println("q1 "+q1);
System.out.println("q2 "+q2);
}
}
輸出
i 2
j 7
k 7
h 3
p1 0
p2 1
q1 1
q2 0
解析:i++和++i使用的不同點(diǎn)在于一個(gè)是程序完畢后的自增,一個(gè)是程序開始前的自增。
“i=i++ + ++i”執(zhí)行的過程是先執(zhí)行i++,但是i自增1操作是稍后才執(zhí)行,所以此時(shí)i還是0,然后執(zhí)行++i,++i后i的值是1,執(zhí)行完++i后要補(bǔ)增i++,所以此時(shí)i的值實(shí)際上是2,0+2=2,然后賦值給i,最終i的值是2.
“j= ++j + j++ + j++ + j++”,執(zhí)行的過程是先++j,所以j的值是1,然后執(zhí)行j++,j++后j的值仍然是1,然后再執(zhí)行j++,執(zhí)行后的結(jié)果仍然是1,但要補(bǔ)增剛才的j++,所以此時(shí)j的實(shí)際值是2,然后執(zhí)行最后一個(gè)j++,執(zhí)行后的結(jié)果仍然是2,但要補(bǔ)增剛才的j++,所以此時(shí)j的值實(shí)際上是3,所以1+1+2+3=7,然后賦值給j,j的最終值是7.
“k=k++ + k++ + k++ + ++k”執(zhí)行的過程是先k++,所以k的值是0,然后執(zhí)行k++,k++后k的值仍然是0,但要補(bǔ)增剛才的k++,所以此時(shí)k的值實(shí)際上是1,然后再執(zhí)行最后一個(gè)k++,執(zhí)行后的結(jié)果仍然是1,但要補(bǔ)增剛才的k++,所以此時(shí)K的值實(shí)際上的2,最后執(zhí)行++k,執(zhí)行結(jié)果為3,再補(bǔ)增剛才的k++,k的實(shí)際結(jié)果是4,所以0+1+2+4=7,然后賦值給k,最終k的值是7。
“h=++h + ++h”是先自增h,h值為1,再自增好,h值為2,所以1+2=3,然后賦值給h,最終h的值是3.
“q1=++p1”先自增p1,p1的值是1,再賦值給 q1,所以q1的值是1.
“q2=p2++”先賦值p2給q2,q2的值是0,然后再自增p2,所以p2的值是1。
以上所述是小編給大家介紹的java自加和自減運(yùn)算過程,希望對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
SpringSecurity使用PasswordEncoder加密用戶密碼的示例代碼
PasswordEncoder是Spring Security庫(kù)中的一個(gè)關(guān)鍵組件,它主要用于處理密碼的安全存儲(chǔ)和驗(yàn)證,本文將給大家介紹一下SpringSecurity使用PasswordEncoder加密用戶密碼的方法,需要的朋友可以參考下2024-09-09
Spring bean的實(shí)例化和IOC依賴注入詳解
這篇文章主要介紹了Spring bean的實(shí)例化和IOC依賴注入詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03
IDEA調(diào)試小技巧之Evaluate調(diào)試工具詳解
這篇文章主要介紹了IDEA調(diào)試小技巧之Evaluate調(diào)試工具,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼的示例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01
SpringBoot實(shí)現(xiàn)無感刷新Token的項(xiàng)目實(shí)踐
token刷新是前端安全中必要的一部分,本文就來介紹一下SpringBoot實(shí)現(xiàn)無感刷新Token的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
java設(shè)計(jì)模式—靜態(tài)代理模式(聚合與繼承方式對(duì)比)
下面小編就為大家?guī)硪黄猨ava設(shè)計(jì)模式—靜態(tài)代理模式(聚合與繼承方式對(duì)比)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
SpringBoot+Nacos+Kafka微服務(wù)流編排的簡(jiǎn)單實(shí)現(xiàn)
本文主要介紹了SpringBoot+Nacos+Kafka微服務(wù)流編排的簡(jiǎn)單實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
教你怎么使用Java實(shí)現(xiàn)WebSocket
這篇文章主要介紹了教你怎么使用Java WebSocket,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05

