亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

書上對 i ++  和 ++ i 的解釋如下:

int i = 3,a = 0 ;
i ++ : 先賦值再運算;例如:a = i ++; 先賦值 a = i ,再運算 i = i + 1 ;所以輸出結果為 a ==3;
++ i : 先運算再賦值;例如:a = i ++; 先運算 i = i + 1 ,再 賦值 a = i ;所以輸出結果為 a ==4;

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

認識“++”與“--” 

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

認識 i + + 與 i - -
i++讀為 i 加 加,i--讀為 i 減減,這些操作符分別稱為后置自增操作符和后置自減操作符。

以 i++為例,先來介紹一下i++, i++ 的計算方法分為以下5個步驟

  • 先開批一個臨時存儲區(qū)
  • 將 i 的值復制到存儲區(qū)
  • i 自身+1
  • 臨時存儲區(qū)的值等待被調用(參與運算、輸出、賦值)
  • 若 i 被調用則輸出值為 i ,否則輸出 i++

圖解如下:

                                  

接下來我會舉例說明

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

同理可得 i - - 的計算方法如下,

  • 先開批一個臨時存儲區(qū)
  • 將 i 的值復制到存儲區(qū)
  • i 自身 -1
  • 臨時存儲區(qū)的值等待被調用(參與運算、輸出、賦值)
  • 若 i 被調用則輸出值為 i ,否則輸出 i - -

舉例說明

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

認識+ + i 與 - - i

++i 讀作加加i,--i讀作減減i,分別稱作前置自增操作符和前置自減操作符。
相對于i++來說,++i 的運算思路比較簡單,只進行簡單的+1操作即可。

舉例說明:

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

同理,--i ,也只是在自身基礎上- 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
  
 }
}

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

我的總結如下:

  • i++、i-- :若參與調用,輸出值不 +1,否則 +1
  • ++i、--i :無論是否參與調用,輸出值均 +1
  • 希望大家在讀懂我上述描述的基礎上,再合理運用這兩句話 ~

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

 int i = 3,a = 0 ;

i ++ : 例如:a = i ++;因為賦值調用了,所以輸出值為臨時存儲區(qū)先復制的i的值,即 a ==3;

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • jvm堆外內存排查圖文舉例詳解

    jvm堆外內存排查圖文舉例詳解

    Java應用程序通過直接方式從操作系統(tǒng)中申請的內存,叫堆外內存,這篇文章主要給大家介紹了關于jvm堆外內存排查的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • Java實現(xiàn)的Excel列號數(shù)字與字母互相轉換功能

    Java實現(xiàn)的Excel列號數(shù)字與字母互相轉換功能

    這篇文章主要介紹了Java實現(xiàn)的Excel列號數(shù)字與字母互相轉換功能,涉及java針對Excel相關數(shù)值與字符串操作技巧,需要的朋友可以參考下
    2018-03-03
  • java使用udp實現(xiàn)簡單多人聊天功能

    java使用udp實現(xiàn)簡單多人聊天功能

    這篇文章主要為大家詳細介紹了java使用udp實現(xiàn)簡單多人聊天功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 詳解Java類動態(tài)加載和熱替換

    詳解Java類動態(tài)加載和熱替換

    本文主要介紹類加載器、自定義類加載器及類的加載和卸載等內容,并舉例介紹了Java類的熱替換。
    2021-05-05
  • 全網最全Mybatis-Plus詳解

    全網最全Mybatis-Plus詳解

    Mybatis-Plus是一個Mybatis(opens?new?window)的增強工具,在Mybatis的基礎上只做增強不做改變,為簡化開發(fā),這篇文章主要介紹了全網最全Mybatis-Plus詳解,需要的朋友可以參考下
    2024-05-05
  • 通過簡易例子講解Java回調機制

    通過簡易例子講解Java回調機制

    這篇文章主要介紹了通過簡易例子講解Java回調機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Java 序列化詳解及簡單實現(xiàn)實例

    Java 序列化詳解及簡單實現(xiàn)實例

    這篇文章主要介紹了 Java 序列化詳解及簡單實現(xiàn)實例的相關資料,使用序列化目的:以某種存儲形式使自定義對象持久化,將對象從一個地方傳遞到另一個地方,需要的朋友可以參考下
    2017-03-03
  • JVM中-D、-X、-XX參數(shù)的區(qū)別

    JVM中-D、-X、-XX參數(shù)的區(qū)別

    本文主要介紹了JVM中-D、-X、-XX參數(shù)的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • maven中更改jdk版本的方法實現(xiàn)

    maven中更改jdk版本的方法實現(xiàn)

    本文主要介紹了maven中更改jdk版本的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • Spring Cloud Admin健康檢查 郵件、釘釘群通知的實現(xiàn)

    Spring Cloud Admin健康檢查 郵件、釘釘群通知的實現(xiàn)

    這篇文章主要介紹了Spring Cloud Admin健康檢查 郵件、釘釘群通知的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08

最新評論