04-java基礎語法(運算和Scanner)

運算符和Scanner
運算符
1.類型轉換
+是一個運算符, 我們應該能夠看懂,做數據的加法。
boolean類型不能轉換爲其他的數據類型
默認轉換: 範圍小的數據類型直接轉換成範圍大的數據類型
轉換規則byte,short,char—int—long—float—double
注意事項byte,short,char相互之間不轉換,他們參與運算首先轉換爲int類型
格式: 範圍大的數據類型 變量 = 範圍小的數據類型值;
圖解:
在這裏插入圖片描述

public class Demo09TypeCast {
	public static void main(String[] args) {
		//直接輸出了運算的結果
		System.out.println(3 + 4);
		
		//定義兩個int類型的變量
		int a = 3;
		int b = 4;
		int c = a + b;
		System.out.println(c);
		
		//定義一個byte類型,定義一個int類型
		byte bb = 2;
		int cc = 5;
		System.out.println(bb + cc);
		
		//我能不能不直接輸出,用一個變量接收呢?
		//用變量接收,這個變量應該有類型
		//byte dd = bb + cc;//可能損失精度
		//byte,short,char類型在參與運算的時候會把自己提升爲int類型
		int dd = bb + cc;
		System.out.println(dd);
	}
}

強制轉換: 表示範圍大的數據類型強制轉換成範圍小的數據類型
範圍小的數據類型 變量 =(範圍小的數據類型) 範圍大的數據類型值;
不建議,有可能損失精度
代碼演示

public class Demo10TypeCast {
	public static void main(String[] args) {
		int a = 3;
		byte b = 4;
		int c = a + b;
		//byte d = a + b;//可能損失精度
		byte d = (byte) (a + b);
	}
}

2.賦值運算符
爲變量賦值的運算符
在這裏插入圖片描述
擴展的賦值運算符:+=、-=、*=、/= 、%=
左邊+=右邊 相當於 左邊=左邊+(右邊)。
注意:左邊不能是常量
隱含了一個強制類型轉換.

public class Demo05Operator {
	public static void main(String[] args) {
		// 把10賦值給int類型的變量a
		int a = 10;

		// += 把左邊和右邊的數據進行運算,最後賦值給左邊,左邊的只能是變量
		a += 10;// 相當於a = a + 10
		System.out.println("a:" + a);
		System.out.println("----------------------");

		short s = 10;
		// s += 20; // 相當於 s = s + 20;
		s = (short) (s + 20);
		System.out.println("s:" + s);
	}
}

3.比較運算符
又叫關係運算符,即判斷兩個操作數的大小關係及是否相等的關係,比較運算符的返回一定爲布爾值
在這裏插入圖片描述
在這裏插入圖片描述
注意事項
關係運算符“==”不能誤寫成“=” 。

public class Demo06Operator {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		int c = 10;

		System.out.println(a == b);
		System.out.println(a == c);
		System.out.println("-----------------");
		System.out.println(a != b);
		System.out.println(a != c);
		System.out.println("-----------------");
		System.out.println(a > b);
		System.out.println(a > c);
		System.out.println("-----------------");
		System.out.println(a >= b);
		System.out.println(a >= c);
		System.out.println("-----------------");

		int x = 3;
		int y = 4;
		// System.out.println(x == y);
		// System.out.println(x = y);// 把y賦值給x,把x的值輸出
		boolean bb = (x == y);
		// boolean cc = (x = y);// 報錯
		int cc = (x = y);//正確
	}
}

4.邏輯運算符
邏輯運算符只能操作布爾值(這個布爾值可以使字面值也可以是布爾表達式),結果同樣是一個布爾值。
在這裏插入圖片描述
基本使用: &(與),|(或),^(異或),!(非)
與:& 有false則false
或:| 有true則true
異或:^ 相同則false,不同則true
非:! true則false,false則true

public class Demo07Operator {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		int c = 30;

		System.out.println((a > b) & (a > c));// false & false
		System.out.println((a < b) & (a > c)); // true & false
		System.out.println((a > b) & (a < c)); // false & true
		System.out.println((a < b) & (a < c)); // true & true
		System.out.println("---------------");
		System.out.println((a > b) | (a > c));// false | false
		System.out.println((a < b) | (a > c)); // true | false
		System.out.println((a > b) | (a < c)); // false | true
		System.out.println((a < b) | (a < c)); // true | true
		System.out.println("---------------");
		System.out.println((a > b) ^ (a > c));// false ^ false
		System.out.println((a < b) ^ (a > c)); // true ^ false
		System.out.println((a > b) ^ (a < c)); // false ^ true
		System.out.println((a < b) ^ (a < c)); // true ^ true
		System.out.println("---------------");
		System.out.println((a > b)); // false
		System.out.println(!(a > b)); // !false
		System.out.println(!!(a > b)); // !!false
	}
}

&&和&的區別
單&時,左邊無論真假,右邊都進行運算;
雙&時,如果左邊爲真,右邊參與運算,如果左邊爲假,那麼右邊不參與運算。
“|”和“||”的區別同理,雙或時,左邊爲真,右邊不參與運算。

public class Demo08Operator {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		int c = 30;

		System.out.println((a > b) && (a > c));// false && false
		System.out.println((a < b) && (a > c)); // true && false
		System.out.println((a > b) && (a < c)); // false && true
		System.out.println((a < b) && (a < c)); // true && true
		System.out.println("---------------");
		System.out.println((a > b) || (a > c));// false || false
		System.out.println((a < b) || (a > c)); // true || false
		System.out.println((a > b) || (a < c)); // false || true
		System.out.println((a < b) || (a < c)); // true || true
		System.out.println("---------------");

		int x = 3;
		int y = 4;
		// System.out.println((x++ > 4) & (y++ > 5)); // false & false
		System.out.println((x++ > 4) && (y++ > 5)); // false && false
		System.out.println("x:" + x);
		System.out.println("y:" + y);
	}
}

注意: 另外在Java中不可以寫成3<x<6,應該寫成x>3 && x<6 。
當短路的優點:只要能判斷出結果則後邊的部分就不再判斷,日常開發中全部使用短路。
5.三元運算符
三元運算符即三個操作數參與計算的運算符。
格式:
(條件表達式)?結果1:結果 2;
運算規則:
判斷條件表達式
true,運算結果爲表達式1
false,運算結果爲表達式2
如:

int i = 10;
		int j = 20;
		System.out.println(i>j?"i的值大":"j的值大");
		//打印結果爲j的值大

6.運算符優先級
6.1優先級概念
運算符運算的先後順序,優先級越高(數字越小),計算順序越靠前。
比如,當賦值運算符=與+運算符都作用在一個變量上時,先計算加法,再計算賦值。
如:

int i,j; 
		i = 10;
		//對i這個變量有兩個運算符操作,分別爲=與+。
		j = i + 20;
		System.out.println(j);
		//最終打印結果爲30。說明先計算+後計算=

6.2優先級規則
優先級相同的情況下,按照從左到右的順序依次運算
在這裏插入圖片描述
在這裏插入圖片描述
引用數據 類型
1.引用數據類型使用步驟(重點是記住步驟):
導包:
使用import導包,在類的所有代碼之前導包(找到要使用的類型)
定義變量,並創建對象賦值
數據類型 變量名 = new 數據類型();
調用方法,每種引用數據類型都有其功能,我們可以調用該類型實例的功能:
變量名.方法名();
2.鍵盤錄入:Scanner類(也可以叫做Scanner類型)
Scanner類是引用數據類型的一種,我們可以使用該類來完成用戶鍵盤錄入,終於不需要我們幫用戶指定購物數量了,用戶可以自己從鍵盤錄入想買的數量了。
Scanner使用步驟:
導包:import java.util.Scanner;

創建對象實例:Scanner sc = new Scanner(System.in);
調用方法:
nextInt():接收一個整數
如:
int i = sc.nextInt(); 用來接收控制檯錄入的數字

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章