02_Java基礎_第2天(變量、運算符)_講義
阿新 • • 發佈:2018-08-25
long static 單元 前置 否則 fin demo 計算 位與
今日內容介紹
1、變量
2、運算符
01變量概述
* A: 什麽是變量?
* a: 變量是一個內存中的小盒子(小容器),容器是什麽?生活中也有很多容器,
* 例如水杯是容器,用來裝載水;你家裏的大衣櫃是容器,用來裝載衣褲;飯盒是容器,
* 用來裝載飯菜。那麽變量是裝載什麽的呢?答案是數據!結論:變量是內存中裝載數據的
* 小盒子,你只能用它來存數據和取數據。
02計算機存儲單元
* A: 計算機中儲存和運算的最小單位是? * a: 一個字節,也就是一個byte. * win+r--cmd--回車 * b: 常用儲存單位 *1B(字節) = 8bit *1KB = 1024B *1MB = 1024KB *1GB = 1024MB *1TB = 1024GB *1PB = 1024TB
03Java中數據類型四類八種
* A: 數據類型四類八種 *四類 八種 字節數 數據表示範圍 *整型 byte 1 -128~127 short 2 -32768~32767 int 4 -2147483648~2147483648 long 8 -263~263-1 *浮點型 float 4 -3.403E38~3.403E38 double 8 -1.798E308~1.798E308 *字符型 char 2 表示一個字符,如('a','A','0','家') *布爾型 boolean 1 只有兩個值true與false
04常量和數據類型
* A:常量的定義
* a: 整形常量默認是int類型
* b: 小數常量默認是double類型
* c: 定義長整形數據如果值超過int取值範圍後面要+"L"
* d: 定義float類型的數據後面要+"f" 否則默認是double
05變量創建的三要素
* A: 定義變量的語法格式: 數據類型 變量名 = 變量值; * int a = 100; * B:代碼: public class Variable { public static void main(String[] args) { int a = 10; double b = 3.14; char c = 'z'; String s = "i love java"; a = 20; System.out.println(a); } }
06定義所有的基本數據類型變量
* A: 案例演示
* a: 八種基本類型數據的創建
07定義字符串變量
* A:案例演示
* 創建字符串數據類型變量
* String 是引用數據類型
08變量定義使用註意事項
* A:變量使用的註意事項
* a: 變量定義後可以不賦值,使用時再賦值。不賦值不能使用。
public static void main(String[] args) {
int x;
x = 20; //為x賦值20
System.out.println(x);//讀取x變量中的值,再打印
}
* c: 變量使用時有作用域的限制。
public static void main(String[] args) {
int x = 20;
{
int y = 20;
}
System.out.println(x);//讀取x變量中的值,再打印
System.out.println(y);//讀取y變量中的值失敗,失敗原因,找不到y變量,因為超出了y變量作用範圍,所以不能使用y變量
}
09數據類型轉換_自動轉換
* A: ? 自動類型轉換
* a:表示範圍小的數據類型轉換成範圍大的數據類型,這種方式稱為自動類型轉換
自動類型轉換格式:
範圍大的數據類型 變量 = 範圍小的數據類型值;
如:
double d = 1000;
或
int i = 100;
double d2 = i;
10數據類型轉換_強制轉換
* A: 強制類型轉換
*a: 表示範圍大的數據類型轉換成範圍小的數據類型,這種方式稱為強制類型轉換
*b: 強制類型轉換格式:
範圍小的數據類型 變量 = (範圍小的數據類型) 範圍大的數據類型值;
如:
int i = (int)6.718; //i的值為6
或
double d = 3.14;
int i2 = (int)d; //i2的值為3
11算數運算符_1
* A: 常見操作
運算符 運算規則 範例 結果
+ 正號 +3 3
+ 加 2+3 5
+ 連接字符串 “中”+“國” “中國”
- 負號 int a=3;-a -3
- 減 3-1 2
* 乘 2*3 6
/ 除 5/2 2
% 取模 5/2 1
++ 自增 int a=1;a++/++a 2
-- 自減 int b=3;a--/--a 2
* B: 註意事項
*a:加法運算符在連接字符串時要註意,只有直接與字符串相加才會轉成字符串。
*b:除法“/”當兩邊為整數時,取整數部分,舍余數。當其中一邊為浮點型時,按正常規則相除。
*c:“%”為整除取余符號,小數取余沒有意義。結果符號與被取余符號相同。
*d:整數做被除數,0不能做除數,否則報錯。
*e:小數做被除數,整除0結果為Infinity,對0取模結果為NaN
* C:代碼演示
public class OperatorDemo1 {
public static void main(String[] args) {
/*
* 常量使用算數運算符
*/
System.out.println(10+20);
/*
* 變量使用算數運算符
*/
int x = 10;
int y = 20;
//"+"作為加法運算使用
int z = x + y;
//"+"作為連接字符串使用
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println("z="+z);
}
}
12算數運算符_2
* A:算數運算符++、--的使用
* a: ++運算符,會在原有值的基礎上自增1
* b: --運算符,會在原有值的基礎上自減1。
* B:++ -- 位置的使用
* a:++,--運算符後置時,先使用變量a原有值參與運算操作,運算操作完成後,變量a的值自增1或者自減1;
* b:++,--運算符前置時,先將變量a的值自增1或者自減1,然後使用更新後的新值參與運算操作。
13賦值運算符
* A: 賦值運算符的使用
運算符 運算規則 範例 結果
= 賦值 int a=2 2
+= 加後賦值 int a=2,a+=2 4
-= 減後賦值 int a=2,a-=2 0
*= 乘後賦值 int a=2,a*=2 4
/= 整除後賦值 int a=2,a/=2 1
%= 取模後賦值 int a=2,a%=2 0
* B:案例演示
* 賦值運算符
* +=, -=, *=, /=, %= :
* 上面的運算符作用:將等號左右兩邊計算,會將結果自動強轉成等號左邊的數據類型,再賦值給等號左邊的
* 註意:賦值運算符左邊必須是變量
public class OperatorDemo2 {
public static void main(String[] args) {
byte x = 10;
x += 20;// 相當於 x = (byte)(x+20);
System.out.println(x);
}
}
14比較運算符
* A:比較運算符的使用
運算符 運算規則 範例 結果
== 相等於 4==3 False
!= 不等於 4!=3 True
< 小於 4<3 False
> 大於 4>3 True
<= 小於等於 4<=3 False
>= 大於等於 4>=3 True
15邏輯運算符
* A: 邏輯運算符的使用
運算符 運算規則 範例 結果
& 與 false&true False
| 或 false|true True
^ 異或 true^flase True
! 非 !true Flase
&& 短路與 false&&true False
|| 短路或 false||true True
規律小結:
短路與&&:參與運算的兩邊數據,有false,則運算結果為false;
? 短路或||:參與運算的兩邊數據,有true,則運算結果為true;
? 邏輯非! : 參與運算的數據,原先是true則變成false,原先是false則變成true。
16三元運算符
* A: 格式:
(條件表達式)?表達式1:表達式2;
* B: 代碼案例
方式一:
System.out.println( 3>2 ? “正確” : “錯誤” );
// 三元運算符運算後的結果為true,運算結果為表達式1的值“正確”,然後將結果“正確”,在控制臺輸出打印
方式二:
int a = 3;
int b = 4;
String result = (a==b) ? “相等” : “不相等”;
//三元運算符運算後的結果為false,運算結果為表達式2的值“不相等”,然後將結果賦值給了變量result
方式三:
int n = (3>2 && 4>6) ? 100 : 200;
//三元運算符運算後的結果為false,運算結果為表達式2的值200,然後將結果200賦值給了變量n
17運算符優先級
優先級 描述 運算符
1 括號 ()、[]
2 正負號 +、-
3 自增自減,非 ++、--、!
4 乘除,取余 *、/、%
5 加減 +、-
6 移位運算 <<、>>、>>>
7 大小關系 >、>=、<、<=
8 相等關系 ==、!=
9 按位與 &
10 按位異或 ^
11 按位或 |
12 邏輯與 &&
13 邏輯或 ||
14 條件運算 ?:
15 賦值運算 =、+=、-=、*=、/=、%=
16 位賦值運算 &=、|=、<<=、>>=、>>>=
18 商場庫存清單案例
A: 案例分析.
* a:觀察清單後,可將清單分解為三個部分(清單頂部、清單中部、清單底部)
* b:清單頂部為固定的數據,直接打印即可
* c:清單中部為商品,為變化的數據,需要記錄商品信息後,打印
經過觀察,我們確定一項商品應該有如下幾個屬性:
品牌型號: 即商品名稱,String型
尺寸:物品大小,double型
價格:物品單價,double型
配置:這一項為每種商品的配置信息,String型
庫存數:這一項為每種商品的庫存個數,int型
* d:清單底部包含了統計操作,需經過計算後,打印
我們發現兩個單獨的可變化量
總庫存數:所有商品總個數,int型
庫存商品總金額:所有商品金額,double型
B: 案例代碼實現
//步驟一: 創建Demo01庫存清單.java文件,編寫main主方法
public class Demo01庫存清單 {
public static void main(String[] args) {
}
}
//步驟二: 記錄每種庫存商品信息
//蘋果筆記本電腦
String macBrand = "MacBookAir";
double macSize = 13.3;
double macPrice = 6988.88;
int macCount = 5;
//聯想Thinkpad筆記本電腦
String thinkpadBrand = "ThinkpadT450";
double thinkpadSize = 14.0;
double thinkpadPrice = 5999.99;
int thinkpadCount = 10;
//華碩ASUS筆記本電腦
String ASUSBrand = "ASUS-FL5800";
double ASUSSize = 15.6;
double ASUSPrice = 4999.50;
int ASUSCount = 18;
//步驟三: 統計庫存總個數、庫存總金額
int totalCount = macCount + thinkpadCount + ASUSCount;
double totalMoney = (macCount * macPrice) + (thinkpadCount * thinkpadPrice) + (ASUSCount * ASUSPrice);
//步驟四: 列表頂部
System.out.println("------------------------------商城庫存清單-----------------------------");
System.out.println("品牌型號 尺寸 價格 庫存數");
? 步驟四:打印庫存清單中部信息
//列表中部
System.out.println(macBrand+" "+macSize+" "+macPrice+" "+macCount);
System.out.println(thinkpadBrand+" "+thinkpadSize+" "+thinkpadPrice+" "+thinkpadCount);
System.out.println(ASUSBrand+" "+ASUSSize+" "+ASUSPrice+" "ASUSCount);
? 打印庫存清單底部信息
//列表底部
System.out.println("-----------------------------------------------------------------------");
System.out.println("總庫存數:"+totalCount);
System.out.println("庫存商品總金額:"+totalMoney);
02_Java基礎_第2天(變量、運算符)_講義