java基礎之運算符與語句
一、運算符
1、算數運算符
運算符 | 名稱 | 舉例 |
+ | 加法 | A等於10,B等於3 則A+B=13 |
- | 減法 | A等於10,B等於3 則A-B=7 |
* | 乘法 | A等於10,B等於3 則A*B=30 |
/ | 除法 | A等於10,B等於3 則A/B=3 |
% | 取余 | A等於10,B等於3 則A%B=1 |
++ | 自增 | B++或++B等於4 |
-- | 自減 | B--或--B等於2 |
++:意為將變量值+1,如果++出現在變量名的前面,則變量本身先加1,然後在輸出;如果++出現在變量名的後面,則先輸出變量本身的值,然後加1
1 public static void main(String[] args) {
2 int i=1;
3 System.out.println("i++的值-----"+(i++));
4 System.out.println("i的值-----"+i);
5 int k=1;
6 System.out.println("++k的值"+(++k));
7 }
輸出的結果為
i++的值-----1
i的值-----2
++k的值2
--:意為將變量值-1,如果--出現在變量名的前面,則變量本身先減1,然後在輸出,如果--出現在變量名的後面,則先輸出變量本身的值,然後在減1
1 public static void main(String[] args) {
2 int i=1;
3 System.out.println("i--的值-----"+(i--));
4 System.out.println("i的值-----"+i);
5 int k=1;
6 System.out.println("--k的值"+(--k));
7
8 }
輸出的結果為:
i--的值-----1
i的值-----0
--k的值0
2、賦值運算符
兩個操作數進行操作,把結果再賦值給其中的一個變量
運算符 | 名稱 | 舉例 |
= | 賦值 | c=a+b,將a+b的值賦值給c |
+= | 加等於 | c+=a等價於c=c+a |
-+ | 減等於 | c-=a等價於c=c-a |
*+ | 乘等於 | c*=a等價於c=c*a |
/= | 除等於 | c/=a等價於c=c/a |
%= | 模等於 | c%=a等價於c=c&a |
1 public static void main(String[] args) {
2 int one=10;
3 int two=3;
4 int three=0;
5 three=one+two;
6 System.out.println("three=one+two----"+three);
7 three+=one;
8 System.out.println("three+=one----"+three);
9 three-=one;
10 System.out.println("three-=one---"+three);
11 three*=one;
12 System.out.println("three*=one---"+three);
13 three/=one;
14 System.out.println("three/=one---"+three);
15 three%=one;
16 System.out.println("three%=one---"+three);
17
18 }
輸出結果為
three=one+two----13
three+=one----23
three-=one---13
three*=one---130
three/=one---13
three%=one---3
3、關系運算符
關系運算符運算得到的結果類型為boolean類型
運算符 | 描述 | 例子 |
---|---|---|
== | 檢查如果兩個操作數的值是否相等,如果相等則條件為真。 | (A == B)為假(非真)。 |
!= | 檢查如果兩個操作數的值是否相等,如果值不相等則條件為真。 | (A != B) 為真。 |
> | 檢查左操作數的值是否大於右操作數的值,如果是那麽條件為真。 | (A> B)非真。 |
< | 檢查左操作數的值是否小於右操作數的值,如果是那麽條件為真。 | (A <B)為真。 |
>= | 檢查左操作數的值是否大於或等於右操作數的值,如果是那麽條件為真。 | (A> = B)為假。 |
<= | 檢查左操作數的值是否小於或等於右操作數的值,如果是那麽條件為真。 | (A <= B)為真。 |
1 public static void main(String[] args) {
2 int a = 10;
3 int b = 20;
4 System.out.println("a == b = " + (a == b) );
5 System.out.println("a != b = " + (a != b) );
6 System.out.println("a > b = " + (a > b) );
7 System.out.println("a < b = " + (a < b) );
8 System.out.println("b >= a = " + (b >= a) );
9 System.out.println("b <= a = " + (b <= a) );
10
11 }
輸出結果為
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false
4、邏輯運算符:
下表列出了邏輯運算符的基本運算,假設布爾變量A為真,B為假,C為真,D為假
運算符 | 名稱 | 舉例 |
& | 與(兩個變量同為真結果為真,否則為假) | A&B為假 A&C為真 B&D為假 |
| | 或(兩個變量有一個為真結果就是真,否則為假) | A|B為真 A|C為真 B|D為假 |
^ | 異或(兩個變量相同為假,不同為真) | A^B為真 A^C為假 B^D為假 |
! | 非(條件為真,非後結果為假) | !(A&B)為假 !(A&C)為真 !(B&D)為假 |
&& 短路與:規則與&相同,但是如果使用&&時,第一個條件為false,則不再對第二個條件進行判斷,直接輸出結果為false。
|| 短路或:規則與|相同,但是如果使用||時,第一個條件為true,則不再對第二個條件進行判斷,直接輸出結果為為true。
5、字符串連接符
String表示字符串類型,如果要申明一個字符串的變量,則變量值需要使用雙引號,任何數據類型通過+和字符串類型連接,組成的依然是一個字符串
6、條件運算符
也叫三目運算符,三元運算符等,
語法:條件表達式?結果1:結果2;
註意:1、條件表達式的結果只能是boolean類型
2、如果返回的結果為true,則輸出結果1,否則輸出結果2
1 public static void main(String[] args) {
2 int a,b,c;
3 a=20;
4 b=(a==10)?20:30;
5 c=(a==20)?20:30;
6 System.err.println("b的值"+b);
7 System.err.println("c的值"+c);
8
9 }
輸出結果為
b的值30
c的值20
7、instanceof運算符
該運算符用於操作對象實例,檢查該對象是否是一個特定類型(接口類型或類類型)
語法:(object reference variable) instanceof (class/interface type)
如果運算符左側變量所指的對象,是操作符右側類或接口(class/interface)的一個對象,那麽結果為真
例子
String name="xiaoming";
//由於name是string類型,所以返回true
boolean result =name instanceof String
如果被比較的對象兼容於右側類型,改運算符仍然返回true
例子:
class Vehicle{}
public class car extends Vehicle{
publicstatic void main(String []args){
Vehicle a=new car();
boolean result = a instanceof Car;
Systen.out.println(result)
}
}
運行結果為
true
8、java運算符優先級
當多個運算符出現在一個表達式中,誰先誰後呢?這就涉及到運算符的優先級別的問題。在一個多運算符的表達式中,運算符優先級的不同會導致最後得出的結果差別很大
下表中具有最高優先級別的運算符在表的最上面,最低優先級的在表的最下面
類別 | 操作符 | 關聯性 |
---|---|---|
後綴 | () [] . (點操作符) | 左到右 |
一元 | + + - !? | 從右到左 |
乘性 | * /% | 左到右 |
加性 | + - | 左到右 |
移位 | >> >>> << | 左到右 |
關系 | >> = << = | 左到右 |
相等 | == != | 左到右 |
按位與 | & | 左到右 |
按位異或 | ^ | 左到右 |
按位或 | | | 左到右 |
邏輯與 | && | 左到右 |
邏輯或 | | | | 左到右 |
條件 | ?: | 從右到左 |
賦值 | = + = - = * = / =%= >> = << =&= ^ = | = | 從右到左 |
逗號 | , | 左到右 |
二、java語句
1、條件語句
1)、if語句
語法:
if(條件語句){
//條件成立,需要運行的代碼
}else{
//可選項,當條件不成立,就執行else中的代碼
}
如果有多個條件時可以選擇else if和if語句匹配使用,語法:
if(條件語句){
//調價成立,需要運行的代碼
}else if(){
//條件成立,需要運行的代碼
}
.....
else if(){
//條件成立,需要運行的代碼
}else{
//可選項,當以上條件都不成立時,就執行else中的代碼
}
【一個if語句中可以有多個else if,但只能有一個esle,而且else要位於所有else if 的後面】
2)、switch語句
語法:
switch(表達式){
case 取值1:代碼塊
break;
case 取值1:代碼塊
break;
case 取值1:代碼塊
break;
case 取值1:代碼塊
break;
.....
default 代碼塊
註意:1、switch中的表達式的類型只能是byte,short,int,char,String和枚舉
2、每個case語句塊後面,都要跟上break,用來條出語句
3、default表示當所有條件不成立時們就會被執行。
if和switch的區別:if和switch都是條件語句,但是switch只能做等值判斷,而if條件語句既可以做等值判斷,也可以做範圍判斷
2、循環語句
順序結構的程序語句只能被執行一次,如果想要同樣的操作執行多次,就需要使用循環結構。java中有三種主要的循環結構,while循環,do....while循環,for循環
1)、while循環
while循環是最基本的循環,結構為:
while (布爾表達式){
循環內容
}
只要布爾表達式為true,循環就會一直執行下去
1 public static void main(String[] args) {
2 int i=20;
3 while(i<30){
4 System.out.println("i的值="+i);
5 i++;
6 }
7 }
輸出結果為:
i的值=20
i的值=21
i的值=22
i的值=23
i的值=24
i的值=25
i的值=26
i的值=27
i的值=28
i的值=29
2)、do...while循環
對於whlie語句而言,如果不滿足條件,則不能進入循環,但有時我們需要即使不滿足條件,也至少執行一次。do...whlie循環和while循環相似,不同的是,do...while循環至少會執行一次。
do{
//代碼語句
}while(布爾表達式);
例子:
1 public static void main(String[] args) {
2 int i=20;
3 do {
4 System.err.println("i的值為==="+i);
5 } while (i>20);
6
7 do {
8 System.err.println("i的值為----"+i);
9 i++;
10 } while (i<25);
11 }
輸出結果為:
i的值為===20
i的值為----20
i的值為----21
i的值為----22
i的值為----23
i的值為----24
註意:布爾表達式在循環體的後面,所以語句塊在檢測布爾表達式之前已經執行了。如果布爾表達式的值為true,語句塊一直執行,知道布爾表達式的值為false。
3)、for循環
雖然所有循環結構都可以用while或do...while表示,但是java提供了另一種語句——for循環,是一些循環結構更加簡單。
for循環執行的次數是在執行前就確定的,結構為:
for(初始化;布爾表達式;更新){
//代碼語句
}
for循環需要註意幾點:
1、最先執行初始化步驟。可以聲明一種類型,但可初始化一個或多個循環控制變量,也可以是空語句。
2、然後,檢測布爾表達式的值,如果為true,循環體被執行,如果為false,循環終止,開始執行循環體後面的語句。
3、執行一次循環後,更新循環控制變量。
4、再次檢測布爾表達式,循環執行上面的過程。
1 public static void main(String[] args) {
2 for(int i=0;i<5;i++){
3 System.err.println("i的值"+i);
4 }
5 }
輸出結過為
i的值0
i的值1
i的值2
i的值3
i的值4
java增強的for循環
在java5以後引入了一種用於數組或集合的增強型for循環,結構為:
for(聲明語句:表達式){
//打碼語句
}
聲明語句:聲明新的局部變量,該變量的類型必須和數組或集合元素的類型匹配。其作用域限定在循環語句塊,其值與此時數組或集合元素的值相等。
表達式:表達式是要訪問的數組或集合名,或者是返回值為數組或集合的方法
例子:
1 public static void main(String[] args) {
2
3 String [] strings={"小明","小李","小紅","小白"};
4 for(String s:strings){
5 System.err.println("數組循環==="+s);
6 }
7 List<String> lStrings=new ArrayList<>();
8 lStrings.add("小明");
9 lStrings.add("小李");
10 lStrings.add("小紅");
11 lStrings.add("小白");
12 for(String list:lStrings){
13 System.err.println("集合循環==="+list);
14 }
15 }
輸出結果為:
數組循環===小明
數組循環===小李
數組循環===小紅
數組循環===小白
集合循環===小明
集合循環===小李
集合循環===小紅
集合循環===小白
java基礎之運算符與語句