標籤:
知識要點:運算子(掌握) 鍵盤錄入(掌握) 流程式控制制語句 if語句(掌握)
1:運算子(掌握)
(1)算術運算子 A:+,-,*,/,%,++,-- B:+的用法 a:加法 b:正號 c:字串串連符 C:/和%的區別 資料做除法操作的時候,/取得是商,%取得是餘數 D:++和--的用法 a:他們的作用是自增或者自減 b:使用 **單獨使用 放在操作資料的前面和後面效果一樣。 a++或者++a效果一樣。 **參與操作使用 放在運算元的前面:先自增或者自減,再參與操作 int a = 10; int b = ++a; 放在運算元的後面:先參與操作,再自增或者自減 int a = 10; int b = a++;
(2)賦值運算子 A:=,+=,-=,*=,/=,%=等 B:=叫做賦值運算子,也是最基本的賦值運算子 int x = 10; 把10賦值給int類型的變數x。 C:擴充的賦值運算子的特點 隱含了自動強制轉換。
面試題:#面試# short s = 1; s = s + 1; //編譯報錯,可能損失精度 short s = 1; s += 1; //正確,擴充的賦值運算子,隱含了自動強制轉換。 s += 1 ; 不等價於 s = s + 1; 而是等於 s = (s的資料類型)s + 1 請問上面的代碼哪個有問題?
(3)比較子 A:==,!=,>,>=,<,<= B:無論運算子兩端簡單還是複雜最終結果是boolean類型。 C:千萬不要把==寫成了=
(4)邏輯運算子 A:&,|,^,!,&&,|| B:邏輯運算子用於串連boolean類型的式子 C:結論 &:有false則false |:有true則true ^:相同則false,不同則true。 情侶關係。 !:非true則false,非false則true &&:結果和&是一樣的,只不過有短路效果。左邊是false,右邊不執行。 ||:結果和|是一樣的,只不過有短路效果。左邊是true,右邊不執行。
(5)位元運算符(瞭解)
A:^的特殊用法 一個資料針對另一個資料位元異或兩次,該數不變
B:面試題 #面試# a:請實現兩個變數的交換 **採用第三方變數 **用位異或運算子 左邊a,b,a 右邊a^b b:請用最有效率的方式計算出2乘以8的結果 2<<3
位元運算符的細節
|
<<
|
空位補0,被移除的高位丟棄。
|
>>
|
被移位的二進位,最高位是0,右移後,空缺位補0;最高位是1,最高位補1。
|
>>>
|
被移位二進位最高位無論是0或者是1,空缺位都用0補。
|
&
|
任何二進位位和0進行&運算,結果是0;和1進行&運算結果是原值。
|
|
|
任何二進位位和0進行 | 運算,結果是原值;和1進行 | 運算結果是1。
|
^
|
任何相同二進位位進行 ^ 運算,結果是0;不相同二進位位 ^ 運算結果是1。 |
(6)三元運算子 A:格式 比較運算式?運算式1:運算式2; B:執行流程: 首先計算比較運算式的值,看是true還是false。 如果是true,運算式1就是結果。 如果是false,運算式2就是結果。 C:案例:(略) a:比較兩個資料是否相等 b:擷取兩個資料中的最大值 c:擷取三個資料中的最大值
2:鍵盤錄入(掌握) (1)實際開發中,資料是變化的,為了提高程式的靈活性,我們加入鍵盤錄入資料。 (2)如何?呢?目前就記住 A:導包 import java.util.Scanner; 位置:在class的上邊 B:建立對象 Scanner sc = new Scanner(System.in); C:擷取資料 int x = sc.nextInt(); (3)把三元運算子的案例加入鍵盤錄入改進。
3:流程式控制制語句 (1)順序結構 從上往下,依次執行 (2)選擇結構按照不同的選擇,執行不同的代碼 (3)迴圈結構 做一些重複的代碼
4:if語句(掌握)
(1)三種格式 A:格式1 if(比較運算式) { 語句體; } 執行流程: 判斷比較運算式的值,看是true還是false 如果是true,就執行語句體 如果是false,就不執行語句體 B:格式2 if(比較運算式) { 語句體1; }else { 語句體2; } 執行流程: 判斷比較運算式的值,看是true還是false 如果是true,就執行語句體1 如果是false,就執行語句體2 C:格式3 if(比較運算式1) { 語句體1; }else if(比較運算式2){ 語句體2; } ... else { 語句體n+1; } 執行流程: 判斷比較運算式1的值,看是true還是false 如果是true,就執行語句體1 如果是false,就繼續判斷比較運算式2的值,看是true還是false 如果是true,就執行語句體2 如果是false,就繼續判斷比較運算式3的值,看是true還是false ... 如果都不滿足,就執行語句體n+1
(2)注意事項 A:比較運算式無論簡單還是複雜,結果是boolean類型 B:if語句控制的語句體如果是一條語句,是可以省略大括弧的;如果是多條,不能省略。 建議:永遠不要省略。 C:一般來說,有左大括弧,就沒有分號,有分號,就沒有左大括弧。 D:else後面如果沒有if,是不會出現比較運算式的。 E:三種if語句其實都是一個語句,只要有一個執行,其他的就不再執行。
(3)案例: A:比較兩個數是否相等 B:擷取兩個數中的最大值 C:擷取三個數中的最大值(if語句的嵌套) D:根據成績輸出對應的等級 E:根據月份,輸出對應的季節 F:根據x計算對應y的值並輸出
(4)三元運算子和if語句第二種格式的關係 所有的三元運算子能夠實現的,if語句的第二種格式都能實現。 反之不成立。 如果if語句第二種格式控制的語句體是輸出語句,就不可以。 因為三元運算子是一個運算子,必須要有一個結果返回,不能是一個輸出語句。
Java基礎班學習筆記(3)