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

Java中i++與++i的區(qū)別和使用

 更新時(shí)間:2020年02月09日 15:00:00   作者:MillionSong  
這篇文章主要介紹了Java中i++與++i的區(qū)別和使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

書上對(duì) i ++  和 ++ i 的解釋如下:

int i = 3,a = 0 ;
i ++ : 先賦值再運(yùn)算;例如:a = i ++; 先賦值 a = i ,再運(yùn)算 i = i + 1 ;所以輸出結(jié)果為 a ==3;
++ i : 先運(yùn)算再賦值;例如:a = i ++; 先運(yùn)算 i = i + 1 ,再 賦值 a = i ;所以輸出結(jié)果為 a ==4;

懂了嗎?我想大部分人會(huì)跟我一樣 一臉懵逼,明明都 + 1 了,咋上面輸出結(jié)果是 3 下面就是 4 呢?哈哈~不要著急,接下來(lái)我將分享一下我對(duì)它們的理解,希望對(duì)你們有幫助。

認(rèn)識(shí)“++”與“--” 

“++”與“--”分別稱作自增操作符和自減操作符,是對(duì)變量進(jìn)行加 1 和減 1 的操作符。

認(rèn)識(shí) i + + 與 i - -
i++讀為 i 加 加,i--讀為 i 減減,這些操作符分別稱為后置自增操作符和后置自減操作符。

以 i++為例,先來(lái)介紹一下i++, i++ 的計(jì)算方法分為以下5個(gè)步驟

  • 先開批一個(gè)臨時(shí)存儲(chǔ)區(qū)
  • 將 i 的值復(fù)制到存儲(chǔ)區(qū)
  • i 自身+1
  • 臨時(shí)存儲(chǔ)區(qū)的值等待被調(diào)用(參與運(yùn)算、輸出、賦值)
  • 若 i 被調(diào)用則輸出值為 i ,否則輸出 i++

圖解如下:

                                  

接下來(lái)我會(huì)舉例說明

public class test{
 public static void main(String[] args){
  int i = 3;
  /*
  創(chuàng)建一個(gè)變量i,里面放i的初始值3,先開辟一個(gè)臨時(shí)存儲(chǔ)區(qū),
  將i的值復(fù)制到存儲(chǔ)區(qū),此時(shí)存儲(chǔ)區(qū)里面i的值為3
   */
  i ++;//i自身加1,此時(shí)i的值為4
  System.out.print(i);//打印輸出i,因?yàn)閕沒有被調(diào)用,故輸出i自身的值4
  System.out.print(i++);
  /*
  上一行代碼中i的值已經(jīng)變成了4,再開辟一個(gè)臨時(shí)存儲(chǔ)區(qū),
  將i的值復(fù)制到存儲(chǔ)區(qū),此時(shí)存儲(chǔ)區(qū)里面i的值為4,i自身的值+1變?yōu)?;
  i++被輸出調(diào)用,故輸出存儲(chǔ)區(qū)的值4
  */
  int j = i++;
  System.out.print(j);
  /*
  上一行代碼中i的值已經(jīng)變成了5,再開辟一個(gè)臨時(shí)存儲(chǔ)區(qū),
  將i的值復(fù)制到存儲(chǔ)區(qū),此時(shí)存儲(chǔ)區(qū)里面i的值為5,i自身的值+1變?yōu)?;
  i++被賦值調(diào)用,故輸出存儲(chǔ)區(qū)的值5
   */
  System.out.print(i);//沒被調(diào)用,故打印值為i自身的值6
  i = i++;
  System.out.print(i);
  /*
  上一行代碼中i的值已經(jīng)變成了6,再開辟一個(gè)臨時(shí)存儲(chǔ)區(qū),
  將i的值復(fù)制到存儲(chǔ)區(qū),此時(shí)存儲(chǔ)區(qū)里面i的值為6,i自身的值+1變?yōu)?;
  i++被賦值調(diào)用,故輸出存儲(chǔ)區(qū)的值6
   */
  i = i++;
  System.out.print(i);
  /*
  上一行代碼中i的值為6,再開辟一個(gè)臨時(shí)存儲(chǔ)區(qū),
  將i的值復(fù)制到存儲(chǔ)區(qū),此時(shí)存儲(chǔ)區(qū)里面i的值為6,i自身的值+1變?yōu)?;
  i++被賦值調(diào)用,故輸出存儲(chǔ)區(qū)的值6
   */
  }
}

同理可得 i - - 的計(jì)算方法如下,

  • 先開批一個(gè)臨時(shí)存儲(chǔ)區(qū)
  • 將 i 的值復(fù)制到存儲(chǔ)區(qū)
  • i 自身 -1
  • 臨時(shí)存儲(chǔ)區(qū)的值等待被調(diào)用(參與運(yùn)算、輸出、賦值)
  • 若 i 被調(diào)用則輸出值為 i ,否則輸出 i - -

舉例說明

public class test01{
 public static void main(String[] args){
  int i = 5;
  /*
  創(chuàng)建一個(gè)變量i,里面放i的初始值5,先開辟一個(gè)臨時(shí)存儲(chǔ)區(qū),
  將i的值復(fù)制到存儲(chǔ)區(qū),此時(shí)存儲(chǔ)區(qū)里面i的值為5 */
  i--;//i自身減1,此時(shí)i的值為4
  System.out.println(i);//打印輸出i,因?yàn)閕沒有被調(diào)用,故輸出i自身的值4
  System.out.print(i--);
  /*
  上一行代碼中i的值已經(jīng)變成了4,再開辟一個(gè)臨時(shí)存儲(chǔ)區(qū),
  將i的值復(fù)制到存儲(chǔ)區(qū),此時(shí)存儲(chǔ)區(qū)里面i的值為4,i自身的值-1變?yōu)?;
  i--被輸出調(diào)用,故輸出存儲(chǔ)區(qū)的值4
  */
  int j = i--;
  System.out.print(j);//3
   /*
  上一行代碼中i的值已經(jīng)變成了4,再開辟一個(gè)臨時(shí)存儲(chǔ)區(qū),
  將i的值復(fù)制到存儲(chǔ)區(qū),此時(shí)存儲(chǔ)區(qū)里面i的值為4,i自身的值-1變?yōu)?;
  i--被賦值調(diào)用,故輸出存儲(chǔ)區(qū)的值3
   */
  System.out.print(i);//沒被調(diào)用,故打印值為i自身的值3
  i = i--;
  System.out.print(i);//2
  /*
  上一行代碼中i的值已經(jīng)變成了3,再開辟一個(gè)臨時(shí)存儲(chǔ)區(qū),
  將i的值復(fù)制到存儲(chǔ)區(qū),此時(shí)存儲(chǔ)區(qū)里面i的值為3,i自身的值-1變?yōu)?;
  i--被賦值調(diào)用,故輸出存儲(chǔ)區(qū)的值2
   */
 }
}
 

認(rèn)識(shí)+ + i 與 - - i

++i 讀作加加i,--i讀作減減i,分別稱作前置自增操作符和前置自減操作符。
相對(duì)于i++來(lái)說,++i 的運(yùn)算思路比較簡(jiǎn)單,只進(jìn)行簡(jiǎn)單的+1操作即可。

舉例說明:

public class test{
 public static void main(String[] args){
  i = 1;
  j = i++ + ++i + ++i + i++;
  // 1  3  4  4
  /*
  i++: 賦值調(diào)用,故打印值為1,臨時(shí)存儲(chǔ)區(qū)放的值為2
  ++i:i的值+1,故值為3
  ++i:i的值+1,故值為4
  i++:賦值調(diào)用,故輸出臨時(shí)存儲(chǔ)區(qū)的值4,i自身值+1為5
   */
  System.out.print(j);//故輸出結(jié)果為12
  System.out.print(i);//沒有參與調(diào)用,故輸出i自身的值5
  System.out.print(++i);//輸出值為6
 

同理,--i ,也只是在自身基礎(chǔ)上- 1即可。

舉例說明:

public class test01{
 public static void main(String[] args){
  int i = 5;
  --i;
  System.out.println(i);//i自身減1,值為4
  System.out.print(--i);//i自身減1,值為3
  
 }
}

使用自增操作符和自減操作符可以使表達(dá)式更加簡(jiǎn)短,但也會(huì)使它們比較復(fù)雜且難以讀懂。比如上述代碼中出現(xiàn)的 j = i++ + ++i + ++i + i++; 只是為了測(cè)試大家是否更好的掌握了i ++與 ++ i,但在實(shí)際編程過程中應(yīng)該避免。 

我的總結(jié)如下:

  • i++、i-- :若參與調(diào)用,輸出值不 +1,否則 +1
  • ++i、--i :無(wú)論是否參與調(diào)用,輸出值均 +1
  • 希望大家在讀懂我上述描述的基礎(chǔ)上,再合理運(yùn)用這兩句話 ~

附:文章開頭那道題,現(xiàn)在用我的方法來(lái)做,是不是易如反掌啦~

 int i = 3,a = 0 ;

i ++ : 例如:a = i ++;因?yàn)橘x值調(diào)用了,所以輸出值為臨時(shí)存儲(chǔ)區(qū)先復(fù)制的i的值,即 a ==3;

++ i : 例如:a = i ++; 輸出結(jié)果直接 +1 即結(jié)果為 a ==4;

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 線程池封裝及拒絕策略示例詳解

    java 線程池封裝及拒絕策略示例詳解

    這篇文章主要為大家介紹了java 線程池封裝及拒絕策略示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Java兩個(gè)變量的互換(不借助第3個(gè)變量)具體實(shí)現(xiàn)方法

    Java兩個(gè)變量的互換(不借助第3個(gè)變量)具體實(shí)現(xiàn)方法

    這篇文章主要介紹了Java兩個(gè)變量的互換(不借助第3個(gè)變量)具體實(shí)現(xiàn)方法,需要的朋友可以參考下
    2014-02-02
  • java優(yōu)先隊(duì)列PriorityQueue中Comparator的用法詳解

    java優(yōu)先隊(duì)列PriorityQueue中Comparator的用法詳解

    這篇文章主要介紹了java優(yōu)先隊(duì)列PriorityQueue中Comparator的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • java內(nèi)存模型jvm虛擬機(jī)簡(jiǎn)要分析

    java內(nèi)存模型jvm虛擬機(jī)簡(jiǎn)要分析

    Java 內(nèi)存模型的主要目的是定義程序中各種變量的訪問規(guī)則, 關(guān)注在虛擬機(jī)中把變量值存儲(chǔ)到內(nèi)存和從內(nèi)存中取出變量值這樣的底層細(xì)節(jié)
    2021-09-09
  • Java中關(guān)于二叉樹的概念以及搜索二叉樹詳解

    Java中關(guān)于二叉樹的概念以及搜索二叉樹詳解

    二叉樹是一種很有用的非線性結(jié)構(gòu),日常的開發(fā)中常會(huì)用到,關(guān)于二叉樹的概念以及搜索二叉樹本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • spring中@value注解需要注意的問題

    spring中@value注解需要注意的問題

    本篇文章主要介紹了spring中@value注解需要注意的問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-03-03
  • java實(shí)現(xiàn)學(xué)生教師管理系統(tǒng)

    java實(shí)現(xiàn)學(xué)生教師管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)學(xué)生教師管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • java學(xué)習(xí)筆記之馬踏棋盤算法

    java學(xué)習(xí)筆記之馬踏棋盤算法

    這篇文章主要為大家詳細(xì)介紹了java學(xué)習(xí)筆記之馬踏棋盤算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • SpringMVC源碼解讀之 HandlerMapping - AbstractDetectingUrlHandlerMapping系列初始化

    SpringMVC源碼解讀之 HandlerMapping - AbstractDetectingUrlHandlerM

    這篇文章主要介紹了SpringMVC源碼解讀之 HandlerMapping - AbstractDetectingUrlHandlerMapping系列初始化的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Java switch 語(yǔ)句如何使用 String 參數(shù)

    Java switch 語(yǔ)句如何使用 String 參數(shù)

    這篇文章主要介紹了Java switch 語(yǔ)句如何使用 String 參數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06

最新評(píng)論

江油市| 玛曲县| 长阳| 梓潼县| 绍兴市| 云和县| 鄯善县| 上犹县| 仙游县| 习水县| 民县| 商南县| 文化| 读书| 神池县| 乡宁县| 三江| 青海省| 阆中市| 荆州市| 武冈市| 多伦县| 乐山市| 左云县| 台东县| 宣恩县| 兖州市| 读书| 雷州市| 汶上县| 通辽市| 三都| 洮南市| 峨边| 新泰市| 城市| 金阳县| 合肥市| 新乡县| 永康市| 安顺市|