Java基礎-算術運算符(Arithmetic Operators)

             Java基礎-算術運算符(Arithmetic Operators)html

                                 做者:尹正傑java

版權聲明:原創做品,謝絕轉載!不然將追究法律責任。面試

 

 

 

  Java程序經過運算符實現對數據的處理,Java中的運算符包括:算數運算符,關係運算符,邏輯運算符,條件運算符,位運算符,移位運算符等等。本篇博客主要介紹算數運算符。算數運算符包括:「+,-,*,/,%,++,--」。ide

 

一.算數運算符的特色post

1>.運算結果可能超出數據類型表示範圍;spa

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class Arithmetic{
 8     public static void main(String[] args){
 9         int num1,num2,result;
10     
11         //運算結果可能超出數據類型表示範圍
12         num1 = 2147483647;
13         num2 = 1;
14     
15         result = num1 + num2;
16         System.out.println(result);            //-2147483648
17         /**
18             num1的二進制爲:
19                 0111 1111 1111 1111 1111 1111 1111 1111
20             num2的二進制爲:
21                 0000 0000 0000 0000 0000 0000 0000 0001
22             +
23             ----------------------------------------------
24                1000    0000  0000 0000 0000 0000 0000 0000
25         */
26         
27         num1 = -2147483648;
28         num2 = 1;
29         result = num1 - num2;
30         System.out.println(result);            //2147483647
31 
32     }
33     
34     
35 }

2>.整數相除結果爲整數;code

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class Arithmetic1{
 8     public static void main(String[] args){
 9     
10         //除法,整數相除,結果爲整數,捨棄小數部分
11         System.out.println( 10 / 3 );        //3
12         System.out.println( 10 / -3 );        //-3
13         System.out.println( -10 / 3 );        //-3
14         System.out.println( -10 / -3 );        //3
15     }
16     
17     
18 }

3>.除數爲0的狀況;htm

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class Arithmetic2{
 8     public static void main(String[] args){
 9     
10         //除法,除數爲0的狀況
11         // System.out.println( 10 / 0 );
12         /**
13             整數相除,0做爲除數時,編譯沒有語法錯誤
14             運行時產生算術異常:java.lang.ArithmeticException: / by zero
15             注意:
16                 整數相除時,保證除數不能爲0.
17         */
18         
19         
20         //小數相除時,除數爲0運行經過,可是結果不是一個數。
21         System.out.println( 10 / 0.0 );            //Infinity,表示無窮大
22         System.out.println( 10 / -0.0 );        //-Infinity
23         System.out.println( -10 / 0.0 );        //-Infinity
24         System.out.println( 0 / 0.0 );            //NaN,表示Not a Number
25         System.out.println( -0 / 0.0 );            //NaN
26     
27     }
28     
29     
30 }

4>.餘數的符號和被除數一致;blog

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class Arithmetic3{
 8     public static void main(String[] args){
 9     
10         //求餘,餘數的符號與被除數的符號一致
11         System.out.println( 10 % 3 );        //1
12         System.out.println( 10 % -3 );        //1
13         System.out.println( -10 % 3 );        //-1
14         System.out.println( -10 % -3 );        //-1
15     }
16 }

5>.自增與自減;get

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class Arithmetic4{
 8     public static void main(String[] args){
 9     
10         //自增與自減
11         /**
12             1>.自增與自減針對變量進行操做;
13             2>.自增就相遇變量的值加1,自減就是變量的值減1
14         */
15         
16         int x = 10;
17         x++;                        //至關於x = x + 1;
18         System.out.println(x);        //11
19         
20         x = 20;                    
21         x--;                        //至關於x = x - 1;
22         System.out.println(x);        //19
23         
24     }
25 }

6>.前綴與後綴的區別;

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class Arithmetic5{
 8     public static void main(String[] args){
 9     
10         int a;
11         //自增與自減有前綴和後綴兩種形式
12         /**
13             ++a        這是前綴形式
14             a--        這是後綴形式
15             區別:
16                 前綴形式先自增後運算
17                 後綴形式是先參與運算再自增
18         */
19         a = 10;
20         int b = ++a;
21         /**
22         前綴形式:
23             1>.先把變量a的值取出來加1
24                 a = a +1;
25                 如今的a的值爲11
26             2>.再把變量a的值11賦值給變量b
27         */
28         System.out.println(b);            //11
29         
30         a = 20;
31         b = a++;
32         /**
33         後綴形式:
34             1>.先把變量a的值保存在一個臨時變量中
35                 int temp = a;        //temp = 10
36             2>.變量a進行自增
37                 a = a + 1            //a = 11
38             3>.其實是臨時變量參與計算
39                 b = temp;            //b = 10
40         */
41         System.out.println(b);            //20
42     }
43 }
 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class Arithmetic6{
 8     public static void main(String[] args){
 9     
10     //面試題:
11     int x =10;
12     x = x++;
13     System.out.println(x);        //打印的結果爲何會是10呢?
14     
15     /**
16         1>.int temp = x;                //temp == 10
17         2>.等號右側的變量x進行自增        
18             x = x +1;                    //x = 11
19         3>.是把臨時變量temp的值賦值給左側的x變量
20             x = temp                    //x = 10
21     */
22 }
23 }
這裏有一道我在網上找的面試題,你能夠戳進來喲!

7>.自增與自減隱含着強制類型轉換;

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class Arithmetic7{
 8     public static void main(String[] args){
 9     
10     //自增與自減隱含着強制類型轉換
11     
12     byte a = 10;
13     // a = a + 1;            
14     /**
15         因爲byte在運算的過程當中會自動提高爲整形,即左邊的a是byte類型,而右邊的a確是
16     int類型。所以會報錯:「錯誤: 不兼容的類型: 從int轉換到byte可能會有損失」。
17     */
18     
19     a++;        //至關於 a = (byte)(a+1);
20     
21     System.out.println(a);        //11
22     
23     char b = 'A';
24     b++;        //至關於b = (char)(b+1);
25     System.out.println(b);        //B
26     
27     
28 }
29 }

8>.表達式的數據類型;

  在進行算數運算時,整數,小數,字符均可以參與運算,整個算數表達式的數據類型是:

    1>.若是有double類型數據參與運算,整個表達式就是double類型;

    2>.不然,若是有float類型數據參與運算,整個表達式就是float類型;

    3>.不然,若是有long類型參與算數運算,整個表達式就是lang類型;

    4>.不然,整個表達式就是int類型;

  補充:算數表達式就是用算術運算符連接起來的式子,如:"int num1 = 10; int num2 = 20; int res = num1 + num2; ",其中res的結果就是一個算數表達式。

相關文章
相關標籤/搜索