程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java語法基本之運算符進修筆記分享

Java語法基本之運算符進修筆記分享

編輯:關於JAVA

Java語法基本之運算符進修筆記分享。本站提示廣大學習愛好者:(Java語法基本之運算符進修筆記分享)文章只能為提供參考,不一定能成為您想要的結果。以下是Java語法基本之運算符進修筆記分享正文


1、運算符

運算符包含上面幾種:

算術運算符賦值運算符比擬運算符邏輯運算符位運算符三目運算符

最不經常使用的是位運算符,但也是最接近盤算機底層的。

1、算術運算符

(1)+的幾種用法:加法、負數、字符串聯接符

(2)除法的時刻要留意一個成績:整數相除,只能獲得整數。要想獲得小數,可以將數據本身*1.0,行將數據本身先轉換為浮點型。

2、賦值運算符

符號 = += -= *= /= %=

注:=為根本的賦值運算符,其他的為擴大的賦值運算符

面試題:

(1)short s=1, s = s+1;

(2) short s=1, s+=1;

下面兩個代碼有無成績,假如有,哪裡有成績?

謎底:代碼(1)是有毛病的,會喪失精度,byte,short在界說的時刻,他們吸收的實際上是一個int類型的值。這個是本身做了一個數據檢測的,假如不再它們的規模內,就報錯。後果以下:

代碼(2)沒有毛病,由於:擴大的賦值運算符其實隱含了一個強迫類型轉換。

也就是說,i += 1; 不是等價於 i = i + 1; 而是等價於 i = (i的數據類型)(s + 1);

3、關系運算符

注1:比擬運算符的成果都是boolean型,也就是要末是true,要末是false。

注2:比擬運算符“==”不克不及誤寫成“=” 。舉例:

4、邏輯運算符

(1)邏輯運算符用於銜接布爾型表達式,在Java中弗成以寫成3<x<6,應當寫成x>3 & x<6 。

(2)“&”和“&&”的差別?同理, “|”和“||”的差別?

A:終究成果都一樣。例如:A和B必需同時為真,A&B、A&&B的成果才為真。B:&&具有短路後果,右邊是false,左邊不履行。||具有短路後果,右邊是true,左邊不履行。

注:開辟中經常使用的邏輯運算符: &&,||,!

(3)異或( ^ )與或( | )的分歧的地方是:當閣下都為true時,異或的成果為false。

5、位運算符:

固然開辟頂用的不多,但會在許多源碼中看到,由於盤算機底層的盤算都是位運算。

面試題1:完成兩個整數變量的交流

代碼以下:

/*
  面試題:請本身完成兩個整數變量的交流
*/
class OperatorTest {
  public static void main(String[] args) {
    int a = 10;
    int b = 20;
    
    System.out.println("a:"+a+",b:"+b);
    
    //方法1:應用第三方變量(開辟頂用的)    
    int c = a;
    a = b;
    b = c;
    System.out.println("a:"+a+",b:"+b);
    System.out.println("------------");
    
    
    //方法2:用位異或完成(面試用)
    //右邊:a,b,a
    //左邊:a ^ b    
    a = a ^ b;
    b = a ^ b; //a ^ b ^ b = a
    a = a ^ b; //a ^ b ^ a = b
    System.out.println("a:"+a+",b:"+b);
    
    
    //方法3:用變量相加的做法    
    a = a + b; //a=30
    b = a - b; //b=10
    a = a - b; //a=20
    System.out.println("a:"+a+",b:"+b);
    *
    
    //方法4:一句話弄定
    b = (a+b) - (a=b); //b=30-20=10,a=20
    System.out.println("a:"+a+",b:"+b);
  }
}

面試題2:請用最有用率的方法寫出盤算2乘以8的成果。

謎底:2 * 8等價於2 << 3

常識回想:

<<:左移 右邊最高位拋棄,左邊補齊0 >>:右移 最高位是0,右邊補齊0;最高為是1,右邊補齊1 >>>:無符號右移 不管最高位是0照樣1,右邊補齊0

6、三目運算符:

格局:(關系表達式)?表達式1:表達式2;

假如前提為true,運算後的成果是表達式1;

假如前提為false,運算後的成果是表達式2;

示例:

獲得兩個數中年夜數:

int x=3,y=4,z;z = (x>y)?x:y;//z變量存儲的就是兩個數的年夜數。

獲得三個整數中的最年夜值:

//方法一:分兩步
    //A:先比擬a,b的最年夜值
    //B:拿a,b的最年夜值在和c停止比擬
    int temp = ((a > b)? a: b);
    //System.out.println(temp);
    int max1 = (temp > c? temp: c);
    System.out.println("max1:"+max1);
    
    //方法二:一步弄定
    int max2 = (a > b)?((a > c)? a: c):((b > c)? b: c);
    //這類做法不推舉:
    //int max2 = a > b?a > c? a: c:b > c? b: c;
    //System.out.println("max2:"+max2);

建議用方法一 。別的,方法二中,第10行和第12行是一樣的,是三目運算符的嵌套應用。

比擬兩個整數能否相等:

//比擬兩個整數能否相等 
    int m = 100;
    int n = 200;
    
    //boolean flag = (m == n)? true: false;
    boolean flag = (m == n);
    System.out.println(flag);

二 、鍵盤錄入數據

我們今朝在寫法式的時刻,數據值都是固定的,然則現實開辟中,數據值確定是變更的,所以,我預備把數據改良為鍵盤錄入,進步法式的靈巧性。

若何完成鍵盤錄入數據呢?(今朝先記住應用)

(1)導包(地位放到class界說的下面):import java.util.Scanner;

(2)創立鍵盤錄入對象:Scanner sc = new Scanner(System.in);

(3)經由過程對象獲得數據:int x = sc.nextInt();

代碼舉例:

以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved