java中的前++和后++的區(qū)別示例代碼詳解
java中的前加加++和后加加++,有很多人搞的很暈,不太明白!今天我舉幾個例子說明下前++和后++的區(qū)別!
其實大家只要記住一句話就可以了,前++是先自加再使用而后++是先使用再自加!
前++和后++總結(jié):其實大家只要記住一句話就可以了,前++是先自加再使用而后++是先使用再自加!
請大家看下面的例子就明白了!
public class Test { public static void main(String[] args) { //測試,前加加和后加加 //前++和后++總結(jié):其實大家只要記住一句話就可以了,前++是先自加再使用而后++是先使用再自加! int age = 6; //先自加,再使用(age先自加1,然后再打印age=7,此時age的值在內(nèi)存中是7) System.out.println("age=" + ++age); //先使用,再自加(此時age的值在內(nèi)存中是7,先打印age=7,然后age再自加1,所以此時打印age=7,但是其實此時age的值在內(nèi)存中已經(jīng)是8了) System.out.println("age=" + age++); //此時打印出來age=8 System.out.println("age=" + age); //先自加,再使用(此時age在內(nèi)存中的值是8,先自加1,age的值在內(nèi)存中就變成了9,然后再打印age,所以此時打印出9) System.out.println(++age); //先使用,再自加(此時age在內(nèi)存中的值是9,先打印出9,然后age再自加1,自加完后,此時age在內(nèi)存中的值是10) System.out.println(age++); //此時打印age是10 System.out.println(age); int index = 0; String[] names = {"令狐沖", "張無忌", "韋小寶", "楊過", "段譽", "喬峰"}; // System.out.println(names[index++]); //打印出令狐沖 // System.out.println(names[index]); //打印出張無忌 //以上兩行代碼注釋掉,那么以下兩行代碼,就會打印出張無忌 //如果以上兩行代碼沒有注釋掉,那么以下兩行代碼,就會打印出韋小寶 System.out.println(names[++index]); //打印出張無忌 System.out.println(names[index]); //打印出張無忌 } }
PS:下面看下Java中i++和++i的區(qū)別
- 說來慚愧,從事開發(fā)工作也有一年時間了,然而在今天的一個業(yè)務(wù)邏輯里突然發(fā)現(xiàn)原來我對i++和++i都沒有理解,或者說我之前的理解是錯誤的。這對于一個有追求的程序猿是不能容忍的。知道之后,迅速惡補學(xué)習(xí),現(xiàn)在算是徹底的理解了。
- 這篇文章可能對于大神沒什么用,畢竟技術(shù)層次不夠,大神追求的都是思想層面的東西。但對于一些初學(xué)者的話還是有一些用的,或者有跟我一樣的已經(jīng)入行一些時間了,但對這個理解模糊的(IT界估計也就我一個了 ~~捂臉!)都可以參閱學(xué)習(xí),我寫的比較詳細(xì),相信只要你看,就絕對會有收獲
1, i++ 和++i
–
在區(qū)分這兩個之前,我們先來了解一下它們的運算規(guī)則
int i=1,a=0;
* i++ 先賦值在運算,例如 a=i++,先賦值a=i,后運算i=i+1,所以結(jié)果是a==1
* ++i 先運算在賦值,例如 a=++i,先運算i=i+1,后賦值a=i,所以結(jié)果是a==2
看下面程序運行結(jié)果,有圖有真相:
public class Test3 { public static void main(String[] args) { int i=1,a=0; System.out.println("a=i++===> "+(a=i++));//1 //System.out.println("a=++i===> "+(a=++i));//2 } }
這里算是基本了解了,那么我們在來一個練習(xí)讓你更加的理解它們之間的關(guān)系
public class Test3 { public static void main(String[] args) { int y=0; int i =0; y=++y; y=++y; y=++y; y=++y; y=++y; System.out.println("y="+y); i=i++; i=i++; i=i++; i=i++; i=i++; System.out.println("i="+i); } }
附上結(jié)果
是不是感覺有點轉(zhuǎn)過轉(zhuǎn)彎來,如果有這種感覺,那么恭喜你(找到跟我之前癥狀相同的了,哈哈),你也得好好理解理解了。下來是我添加上詳細(xì)注釋的代碼。
public class Test3 { public static void main(String[] args) { int y=0; //注意"="是賦值,"=="才是相等 //這里的y=++y 是先運算在賦值,先運算++y完了后y的值是1,然后在賦值給原來等于0的y y=++y;// y==0,++y==y+1; 結(jié)果y=++y == y+1 == 0+1 ==1 y=++y;// y==1,++y==y+1; 結(jié)果y=++y == y+1 == 1+1 ==2 y=++y;// y==2,++y==y+1; 結(jié)果y=++y == y+1 == 2+1 ==3 y=++y;// y==3,++y==y+1; 結(jié)果y=++y == y+1 == 3+1 ==4 y=++y;// y==4,++y==y+1; 結(jié)果y=++y == y+1 == 4+1 ==5 System.out.println("y="+y);//5 int i =0; // i==0,i++==0; 結(jié)果i=i++ == (記住先賦值后運算)i=i,i=i+1(由于是i++運算這里我們輸出的i只取先賦值的結(jié)果也就是i=i) i=i++; i=i++; i=i++; i=i++; i=i++; System.out.println("i="+i);//0 System.out.println("================");//1 } }
總結(jié)
到此這篇關(guān)于java中的前++和后++的區(qū)別示例代碼詳解的文章就介紹到這了,更多相關(guān)java 前++和后++內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA利用自帶Axis工具和wsdl文件反向生成服務(wù)端客戶端代碼圖文詳解
這篇文章主要介紹了IDEA利用自帶Axis工具和wsdl文件反向生成服務(wù)端客戶端代碼詳細(xì)流程,在這里小編使用的是idea2021.1最新開發(fā)工具,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-05-05java HttpClient傳輸json格式的參數(shù)實例講解
這篇文章主要介紹了java HttpClient傳輸json格式的參數(shù)實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01Java中的CopyOnWriteArrayList原理詳解
這篇文章主要介紹了Java中的CopyOnWriteArrayList原理詳解,如源碼所示,CopyOnWriteArrayList和ArrayList一樣,都在內(nèi)部維護了一個數(shù)組,操作CopyOnWriteArrayList其實就是在操作內(nèi)部的數(shù)組,需要的朋友可以參考下2023-12-12SpringBoot集成 Prometheus進(jìn)行高效監(jiān)控的實現(xiàn)
Prometheus作為一個開源的監(jiān)控和告警工具,以其強大的數(shù)據(jù)采集、存儲和查詢能力,受到了眾多開發(fā)者的青睞,本文主要介紹了SpringBoot集成 Prometheus進(jìn)行高效監(jiān)控的實現(xiàn),感興趣的可以了解一下2024-07-07解決IDEA Maven下載依賴時報錯ERROR - #org.jetbrains.ide
這篇文章主要介紹了解決IDEA Maven下載依賴時報錯ERROR - #org.jetbrains.idea.maven - Cannot reconnect.問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08