運算子、鍵盤錄入資料、流程控制語句、方法
運算子
邏輯運算子
包含:&(並且) , |(或者) , !(非) , ^(異或) , &&(短路與) , ||(短路或)
注意:
a:邏輯運算子一般用於連線boolean型別的表示式或者值。
b:表示式:就是用運算子把常量或者變數連線起來的符合java語法的式子。
結論:
&邏輯與:有false則false。
|邏輯或:有true則true。
^邏輯異或:相同為false,不同為true。
!邏輯非:非false則true,非true則false。
位運算子
包含:&(與),|(或),^(異或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(無符號右移)
注意:
結論:
&:有0則0
|:有1則1
^:相同則0,不同則1(一個數據被另一個數據位異或兩次,該數本身不變。)
~:按位取反 0變1 1變0
<<:左移 空位補0,被移除的高位丟棄。
>>:右移 被移位的二進位制最高位是0,右移後,空缺位補0;最高位是1,高位補1
>>>:無符號右移 被移位二進位制最高位無論是0或者是1,空缺位都用0補。
注意:
<< : 把<<左邊的資料乘以2的移動次冪 例如 10<<3 結果 10*2^3=80
>> : 把>>左邊的資料除以2的移動次冪 例如 40>>3 結果 40/2^3=5
三元運算子
格式: (關係表示式) ? 表示式1 : 表示式2;
計算關係表示式的值,如果為true, 運算後的結果是表示式1;
如果為false,運算後的結果是表示式2;
流程控制語句
順序結構:從上往下,依次執行。
選擇結構
1.if語句
格式1:
if(比較表示式或者是boolean型別的值) {
語句體;
}
格式2:
if(比較表示式) {
語句體1;
}else {
語句體2;
}
注意事項: else後面是沒有比較表示式的,只有if後面有。
格式3:
if(比較表示式1) {
語句體1;
}else if(比較表示式2) {
語句體2;
}else if(比較表示式3) {
語句體3;
}
...
else {
語句體n+1;
}
2.switch語句
格式:
switch(表示式){
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
case 值3:
語句體3;
break;
....
default:
語句體n+1;
break;
}
執行流程:
先計算表示式的值
然後和case後面的匹配,如果匹配成功就執行對應的語句,遇到break就會結束,否則執行default控制的語句
解釋:
(1):switch表示這是switch語句
表示式的取值:byte,short,int,char
JDK5以後可以是列舉(什麼是列舉,以後再講)
JDK7以後可以是String
(2):case後面跟的是要和表示式進行比較的值
(3):語句體部分可以是一條或多條語句
(4):break表示中斷,結束的意思,可以結束switch語句
(5):default語句表示所有情況都不匹配的時候,就執行該處的內容,和if語句的else相似
注意:
a:case後面只能是常量,不能是變數,而且,多個case後面的值不能出現相同的
b:default可以省略嗎?
可以省略,但是不建議,因為它的作用是對不正確的情況給出提示。
c:break可以省略嗎?
可以省略,但是結果可能不是我們想要的。
會出現一個現象:case穿透。
最終我們建議不要省略
d:default一定要在最後嗎?
不是,可以在任意位置。但是建議在最後。
e:switch語句的結束條件
a:遇到break就結束了
b:執行到末尾就結束了
比較if與switch:
if語句使用場景:
針對結果是boolean型別的判斷
針對一個範圍的判斷
針對幾個常量值的判斷
switch語句使用場景:
針對幾個常量值的判斷
迴圈結構
for迴圈
格式:
for(初始化表示式語句;判斷條件語句;控制條件語句) {
迴圈體語句;
}
執行流程:
a:執行初始化表示式語句
b:執行判斷條件語句,看其返回值是true還是false
如果是true,就繼續執行
如果是false,就結束迴圈
c:執行迴圈體語句;
d:執行控制條件語句
e:回到B繼續。
注意事項: 初始化表示式語句只執行一次
while迴圈
while格式:
while迴圈的基本格式:
while(判斷條件語句) {
迴圈體語句;
}
//完整格式:
初始化條件語句;
while(判斷條件語句) {
迴圈體語句;
控制條件語句;
}
執行流程:
a:執行初始化條件語句;
b:執行判斷條件語句,看其返回值是true還是false
如果是true,就繼續執行
如果是false,就結束迴圈
c:執行迴圈體語句;
d:執行控制條件語句
e:回到b繼續。
do…while語句的格式:
do {
迴圈體語句;
}while(判斷條件語句);
//完整格式;
初始化條件語句;
do {
迴圈體語句;
控制條件語句;
}while(判斷條件語句);
執行流程:
a:執行初始化條件語句;
b:執行迴圈體語句;
c:執行控制條件語句;
d:執行判斷條件語句,看其返回值是true還是false
如果是true,就繼續執行
如果是false,就結束迴圈
e:回到b繼續。
三種迴圈語句的區別:
(1):do…while迴圈至少執行一次迴圈體。
而for,while迴圈必須先判斷條件是否成立,然後決定是否執行迴圈體語句。
(2):A: 如果你想在迴圈結束後,繼續使用控制條件的那個變數,用while迴圈,否則用for迴圈。不知道用for迴圈。
因為變數及早的從記憶體中消失,可以提高記憶體的使用效率。
B:建議優先考慮for迴圈,然後是while迴圈 ,最後是do…while迴圈
控制跳轉語句
1.break 中斷
使用場景:
1):在選擇結構switch語句中
(2):在迴圈語句中
ps:也可退出多層迴圈
2.continue 繼續
使用作用:
跳出一次迴圈,執行下一步操作
3.return 返回
使用作用:
return 就是退出一個方法
方法
定義: 方法就是完成特定功能的程式碼塊
在很多語言中都有函式的定義,但是在咱們JAVA語言中,我們將其稱之為方法。
格式:
修飾符 返回值型別 方法名(引數型別 引數名1,引數型別 引數名2 ....){
方法體;
return 返回值;
}
詳細說明:
(1): 修飾符 比較多,後面會詳細介紹。目前使用 public static
(2): 返回值型別 用於限定返回值的資料型別
(3): 方法名 就是一個名稱,它的存在是為了方便我們呼叫方法
(4): 引數型別 限定呼叫方法時傳入引數的資料型別
(5): 引數名 是一個變數,接收呼叫方法時傳入的引數
這個引數其實有一個專業的名詞,被稱之為形式引數,它的作用是用來接收實際引數的.
(6): 方法體 完成功能的程式碼
(7): return 結束方法以及返回方法指定型別的值
(8): 返回值 就是功能的結果,由return帶回,帶回給呼叫者
方法過載:
1.概述:在同一個類中,允許存在一個以上的同名方法,只要它們的引數列表不同,與返回值無關
2.引數列表不同:
A:引數個數不同
B:引數型別不同