運算子+分支結構Java基礎
阿新 • • 發佈:2022-03-04
運算子
算術運算子
在Java中,使用算術運算子 + 、- 、* 、/ 表示加減乘除
取餘運算:%,餘數結果符號和被模數的符號相同
-
(前)++:先自增1,後運算
(後)++:先運算,後自增1
-
(前)--:先自減1,後運算
(後)--:先運算,後自減1
注:自增自減,資料型別不會改變
-
連線符 +
只能使用在String型別之間或String型別和其他型別之間
賦值運算子
= 、+= 、*= 、%=
x += 1; //賦值運算子不會改變x的資料型別
x = x + 1; //兩式在一定情況下等價
比較運算子
!= 、== 、> 、< 、>= 、<= 、instanceof
數值型
- 比較運算子運算結果都為boolean型
- 比較大小的幾類運算子只能使用在數值型資料之間
- != 和 ==不僅可以使用在數值型別資料之間,還可以使用在其他引用型別變數之間
邏輯運算子
& 、&& 、| 、|| 、!、 ^(異或:相同為false,不同為true)
操作的都是boolean型別的變數,且結果也為boolean型
位運算子
<< (左移)、>>(右移)、 >>>(無符號右移)、 &(與)、 |(或)、 ^(異或)
注:
- 位運算子操作的都是整型型別
- <<,在一定範圍內,向左移動一位,相當於*2
- |>> ,在一定範圍內,向右移動一位,相當於/2
& 、| 、 ^,相當於將兩數二進位制的每一位進行對應操作
三元運算子
結構:(條件表示式)?表示式1 :表示式2;
注:
- 條件表示式的結果為boolean型
- 根據表示式真假,決定執行表示式1或表示式2
- 當條件表示式為true時,執行表示式1
- 當條件表示式為false時,執行表示式2
- 表示式1和2的要求是一致的
- 三元運算子可以巢狀使用,凡是可以用三元運算子的地方,都可以寫成if-else結構,反之則不成立
- 如果程式既可以使用三元運算子表示也可用if-else結構表示,優先選擇三元表示式(更為簡潔,執行效率高)
三種基本流程結構: 順序結構、分支結構、迴圈結構
分支結構
If-else結構
這裡用到了Scanner類,從控制檯(鍵盤)獲取資料
具體實現步驟:
-
導包
import java.util.Scanner;
-
Scanner例項化
Scanner sca = new Scanner(System.in);
-
呼叫Scanner類的相關方法,來獲取指定型別的變數
//通過上面例項化,使用sca sca.nextInt(); //int型 sca.nextDouble(); //double型 sca.next(); // String型
注:根據相應的方法,來輸入指定型別的值,如果輸入的型別不匹配時,會出現執行異常:InputMisMathExce,程式終止
說明:
- else結構是可選的(就近原則匹配)
- 針對條件表示式:
- 如果多個條件表示式之間是“互斥”關係(沒有交集關係),判斷和執行語句位置可以隨意順序,結果準確
- 如果多個條件表示式之間有交集的關係,需根據實際情況考慮清楚哪個執行語句該放在上面
- 如果多個條件表示式之間有包含關係,通常情況下,需將範圍小的執行語句寫在範圍大的上面,否則小範圍語句沒有機會執行
隨機數函式
Math.random() 範圍[ 0.0 , 1.0)
預設為double型
改變隨機數範圍方法:
範圍[ a , b ]
(int)(Math.random()*(b-a+1) + a) //增加隨機數範圍,進行int強轉
equal:判斷字串是否一致
String s = "劉";
s.equal("林"); //判斷字串s是否和“林”是否相同,相同返回true,不同返回false
switch-case結構
結構:
switch(表示式){
case 常量1:
執行語句1;
break;
.......
default:
執行語句x;
}
說明:
- 根據switch表示式中的值,依次匹配各個case中的常量,一旦匹配成功,則進入相應case結構中,呼叫其執行語句;當呼叫執行語句以後,仍然繼續向下執行其他case結構中的執行語句,直到遇到關鍵字break或到達此switch-case結構末尾時結束
- break可以使用在switch-case結構中,表示一旦執行到此關鍵詞,就跳出switch-case結構
- switch結構中的表示式,只能是如下的6種資料型別之一:byte、short、char、int、列舉型別(JDK5.0)、String型別(JDK7.0)
- case之後只能宣告常量,不能聲明範圍
- break關鍵字是可選的
- default,相當於if-else結構中的else,也是可選的,位置靈活