1. 程式人生 > >Java基礎之自增(++)和自減(--)運算子

Java基礎之自增(++)和自減(--)運算子

回顧一下相關知識: 

· 自增(++):將變數的值加1,分字首式(如++i)和字尾式(如i++)。字首式是先加1再使用;字尾式是先使用再加1。 

· 自減(--):將變數的值減1,分字首式(如--i)和字尾式(如i--)。字首式是先減1再使用;字尾式是先使用再減1。 

一、Java程式碼 

1. int i = 0;   

2. int j = i++;   

3. int k = --i;

這段程式碼執行後,i等於多少?j等於多少?k等於多少?

在第一個例子中,int j=i++;是字尾式,因此i的值先被賦予j,然後再自增1,所以這行程式碼執行後,i=1、j=0;而int k=--i;是字首式,因此i先自減1,然後再將它的值賦予k,因此這行程式碼執行後,i=-1、k=-1。 

二、Java程式碼 

1. int i = 0;   

2. int j = i++ + ++i;   

3. int k = --i + i--;

程式碼執行後i、j、k分別等於多少呢?

在第二個例子中,對於int j=i++ + ++i;,首先執行i++,i的值0被用於加運算(+),之後i自增值變為1,然後執行++i,i先自增變為2,之後被用於加運算,最後將i兩次的值相加的結果0+2=2賦給j,因此這行程式碼執行完畢後i=2、j=2;對於int k=--i + i--;用一樣的思路分析,具體過程在此不再贅述,結果應該是i=-2、k=-2。 

自增與自減運算子還遵循以下規律: 

1. 可以用於整數型別byte、short、int、long,浮點型別float、double,以及字串型別char。 

2. 在Java5.0及以上版本中,它們可以用於基本型別對應的包裝器類Byte、Short、Integer、Long、Float、Double、Character。 

3. 它們的運算結果的型別與被運算的變數的型別相同。 


下面的這個例子驗證以上列出的規律,它可以編譯通過並執行。 

Java程式碼 

1. public class Test {   

2.     public static void main(String[] args) {   

3.         // 整型   

4.         byte b = 0;   

5.         b++;   

6.         // 整型   

7.         long l = 0;   

8.         l++;   

9.         // 浮點型   

10.         double d = 0.0;   

11.         d++;   

12.         // 字串   

13.         char c = 'a';   

14.         c++;   

15.         // 基本型別包裝器類   

16.         Integer i = new Integer(0);   

17.         i++;   

18.     }   

19.} 

相關推薦

java基礎十三:Abstract類方法

.get 引用 ava ESS 實現 print student 通過 bst 這篇介紹Java中抽象類和抽象方法,用關鍵字abstract表示抽象,是一個可以修飾類和方法的關鍵字。如果類名前面用abstract修飾,這個類就是抽象類。如果方法名稱前面有abstract修

Java基礎字串的編碼(Encode)解碼(Decode)

package newFeatures8; import java.io.UnsupportedEncodingException; import java.util.Arrays; /*

Java基礎重寫equals、hashCodecompareTo方法】什麼時候需要重寫重寫equals方法?為什麼重寫equals方法,一定要重寫HashCode方法?

1.何時需要重寫equals() 當一個類有自己特有的“邏輯相等”概念(不同於物件身份的概念)。 2.設計equals() [1]使用instanceof操作符檢查“實參是否為正確的型別”。 [2]對於類中的每一個“關鍵域”,檢查實參中的域與當前物件中對應的域值。 [2

Java基礎++--運算子

回顧一下相關知識:  · 自增(++):將變數的值加1,分字首式(如++i)和字尾式(如i++)。字首式是先加1再使用;字尾式是先使用再加1。  · 自減(--):將變數的值減1,分字首式(如--i)和字尾式(如i--)。字首式是先減1再使用;字尾式是先使用再減1。  一、

java基礎----基本資料型別引用資料型別的引數傳遞過程

值傳遞:方法呼叫時,實際引數把它的值傳遞給對應的形式引數,方法執行中形式引數值的改變不影響實際引數的值。 引用傳遞:也稱為傳地址。方法呼叫時,實際引數的引用(地址,而不是引數的值)被傳遞給方法中相對應的形式引數,在方法執行中,對形式引數的操作實際上就是對實際引

Java基礎IO流位元組流、字元流、記憶體流、帶快取的流、序列化反序列化

File類:File類提供了對檔案的操作,可以通過字串或URI來構建一個File類物件。通過物件,可以實現檔案的建立(createNewFile)、刪除(delete)、獲得檔名(getName)、獲得父目錄物件(getParentFile)、獲得父目錄名稱(

java基礎多線程3閉鎖

ger 死循環 trac turn ktr adg throw boolean brush 1.閉鎖方式1:利用CountDownLatch進行閉鎖 import java.util.concurrent.CountDownLatch; public class Clo

java基礎IO流

目標 構造方法 play pub io流 ted ima str 有一個 java基礎之IO流(一)之字節流   IO流體系太大,涉及到的各種流對象,我覺得很有必要總結一下。   那什麽是IO流,IO代表Input、Output,而流就是原始數據源與目標媒介的數據傳輸的一種

【小家java】Java8新特性---CompletableFuture的系統講解例項演示使用CompletableFuture構建非同步應用

相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9

Java基礎Freemarker1模板加載及清空機制

ron date java 自帶 pda 直接 onf 刷新方法 希望 一 freemarker加載模版機制 freemarker中的配置項template_update_delay表明模版的緩存時間,單位是s,超過緩存時間則從磁盤加載最新的模版,具體細節如下: 1)fre

Java基礎IO操作

Java基礎之IO操作(二) 一、BufferedInputStream public static void main(String[] args) { File src = new File("abc.txt"); //2、選擇流 InputStream is =null;

Java基礎IO操作

Java基礎之IO操作(一) 一、FileInputStream 第一個程式,理解操作步驟 public static void main(String[] args) { //1、建立源 File src = new File("abc.txt"); //2、

Java基礎反射應用如何獲取物件的構造方法、屬性以及、基本方法

反射實戰:新建Student類,利用反射原理輸出Student的構造方法,屬性,普通方法,引數列表等等資訊。 反射資料:查詢java_API之:java.lang.reflect包下。 Student類: package com.briup.ch24; public class St

Java基礎反射例項例項化Account與修改屬性

要求:    設計Account類,並且新增屬性id、name、balance,新增get和set方法與存取錢的方法。    設計ReflectAccountTest類,例項化Account物件,存如100元,與取1000元的結果顯示。 &nb

Java基礎繼承方面的學習

上面的博文已經寫了大部分了,下面這一篇博文我們主要寫繼承之後,父類和子類的方法的覆蓋和隱藏方面。 該文章版署源自:                         &n

Java基礎繼承方面的學習

此文章全部摘自部落格園:                                連結:https://www.cnblogs

Java基礎繼承方面的學習

繼承:一個子類繼承父類的屬性以及方法過程。 Top 一:為什麼要使用到繼承或者使用繼承有什麼好處呢?       主要有Java的性質有關,java是面向物件的一門程式設計性語言,類是必不可少的部分,當我們編寫完一個類又我們想進一步的拓展時候,這個時候我們就

九、java基礎引數傳遞值傳遞

一、值傳遞/*程式在執行過程中,引數傳遞問題: 1.傳遞資料是基本資料型別 2.傳遞資料是引用資料型別 */1.以下程式是傳遞基本資料型別 public class ClassTest04 { public static void m1(int i){ i++;

九、java基礎參數傳遞值傳遞

oid 值傳遞 [] 問題 數據 sta out 執行過程 入口 一、值傳遞/*程序在執行過程中,參數傳遞問題: 1.傳遞數據是基本數據類型 2.傳遞數據是引用數據類型 */1.以下程序是傳遞基本數據類型 public class ClassTest04 {

java基礎I/O流-------轉換流

一.轉換流的概念: 轉換流即包裝流,可以使位元組流轉換成字元流,也可以字元流轉成位元組流。         二.位元組流轉字元流:                    1.InputStreamReader 是位元組流通向字元流的橋樑:它使用指定的 charset