1. 程式人生 > >java基礎知識3

java基礎知識3

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;   //Type mismatch: cannot convert from int to short

short s = 1;
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
a=a^b;
b=a^b;    //b=a;
a=a^b;    //a=b;
b:請用最有效率的方式計算出2乘以8的結果
2<<3
(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語句第二種格式控制的語句體是輸出語句,就不可以。

因為三元運算子是一個運算子,必須要有一個結果返回,不能是一個輸出語句。


day3作業:

1:常見的算術運算子有哪些?
  +運算子的作用有哪些?
  除法和取餘的區別?
  ++和--的使用規則?


2:常見的賦值運算子有哪些?
  +=運算的作用是什麼?
  擴充套件的賦值運算子有什麼特點?


3:short s = 1; s = s + 1;有沒有問題?如果有怎麼解決?
   short s = 1; s += 1;有沒有問題?如果有怎麼解決?

4:常見的關係運算符有哪些?
  關係運算符的結果有什麼特點?
  
5:常見的邏輯運算子有哪些?
  &和&&的區別是什麼?
  |和||的區別是什麼?
  
6:位運算子^的特點是什麼?
  
7:如何實現對兩個整數變數的值進行互換。


8:三元運算子的格式是什麼?
  執行流程是什麼?
  
9:使用三元運算子完成如下練習
比較兩個數是否相等
獲取兩個數中最大值
獲取三個數中最大值

10:流程控制語句有幾種?


11:if語句的格式有幾種?注意事項是什麼?分別在什麼時候使用?


12:看程式寫結果:請自己獨立分析,先不要編譯執行。
第一題
int x = 1,y = 1;


if(x++==2 & ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);  


---------------------------------------------------
第二題
int x = 1,y = 1;


if(x++==2 && ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);


---------------------------------------------------
第三題
int x = 1,y = 1;


if(x++==1 | ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);


---------------------------------------------------
第四題
int x = 1,y = 1;


if(x++==1 || ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);


---------------------------------------------------
第五題
boolean b = true;


if(b==false) 
System.out.println("a");
else if(b)
System.out.println("b");
else if(!b)
System.out.println("c");
else
System.out.println("d");


---------------------------------------------------


13:編寫程式碼實現如下內容:if語句實現
考試成績分等級。
90~100 A等。
80-89 B等。
70-79 C等。
60-69 D等。
60以下 E等。
請根據給定成績,輸出對應的等級。



14:把今天講過的其他案例再練習一遍