二、基礎(chǔ)語法(day2)
5、運(yùn)算符

-
算數(shù)運(yùn)算符:+、-、、/、%、++、--、
( a%b=a-(a/b)b ) - 關(guān)系運(yùn)算符:== 、!=、>、<、>=、<=
- ① >、<、>=、<=運(yùn)算符的優(yōu)先級(jí)別高于== 、!=。
- ② >、<、>=、<=運(yùn)算符值支持?jǐn)?shù)據(jù)類型的數(shù)據(jù)比較。
- 邏輯運(yùn)算符:&、|、^、!、&& 、 ||
- ① 操作數(shù)據(jù)類型只能是布爾類型,操作結(jié)果也是布爾值。
優(yōu)先級(jí)別:! > & > ^異或 > | > && > || 。 - ②&、| 與 &&、|| 的區(qū)別
&和|運(yùn)算是把邏輯表達(dá)式全部計(jì)算完,而&&和||運(yùn)算具有短路計(jì)算功能。即系統(tǒng)從左至右進(jìn)行邏輯表達(dá)式的計(jì)算,一旦出現(xiàn)計(jì)算結(jié)果已經(jīng)確定的情況,則計(jì)算過程即被終止。短路計(jì)算功能可以提高程序的運(yùn)行速度。 - ③ 異或:^兩值相同結(jié)果為false,兩值不同結(jié)果為true。
位運(yùn)算符:&位與、|位或、~位非、^位異或、>>右移、<<左移
賦值運(yùn)算符:=、+=、-=、*=、/=、%=
-
三目運(yùn)算符:表達(dá)式1?表達(dá)式2:表達(dá)式3
eg:int a=1,b=2,max;
max=a>b?a:b;
//max等于2
//三目運(yùn)算符練習(xí)
import java.util.*;
public class CompareDemo {
public static void main(String[] args){
double first;
double second;
Scanner scanner=new Scanner(System.in);
System.out.print("請(qǐng)輸入第一個(gè)數(shù):");
first=scanner.nextDouble();
System.out.print("請(qǐng)輸入第二個(gè)數(shù):");
second=scanner.nextDouble();
System.out.println("最小值為:"+(first<second?first:second));
}
}
//CompareDemo運(yùn)行結(jié)果:
請(qǐng)輸入第一個(gè)數(shù):4
請(qǐng)輸入第二個(gè)數(shù):6
最小值為:4.0
- 運(yùn)算符的優(yōu)先級(jí):
| 優(yōu)先級(jí) | 運(yùn)算符 | 描述 |
|---|---|---|
| 1 | () | 括號(hào) |
| 2 | +、- | 正負(fù)號(hào) |
| 3 | ++、- -、! | 單目運(yùn)算符 |
| 4 | *、/、% | 乘、除、取余 |
| 5 | +、- | 加減 |
| 6 | <<、>>、>>> | 移位運(yùn)算 |
| 7 | <<、>>、>、>= | 比較大小 |
| 8 | ==、!= | 是否相等 |
| 9 | & | 按位于運(yùn)算 |
| 10 | ^ | 按位異或運(yùn)算 |
| 11 | | | 按位或運(yùn)算 |
| 12 | && | 非簡(jiǎn)潔邏輯與運(yùn)算 |
| 13 | 雙豎線 | 非簡(jiǎn)介邏輯或運(yùn)算 |
| 14 | = | 賦值運(yùn)算 |
【
左移:5<<2 將值5轉(zhuǎn)換為二進(jìn)制101后,左移2位,右邊自動(dòng)補(bǔ)0,即10100,計(jì)算得20
右移:x>>y 正數(shù):將值x的二進(jìn)制右移y位,左邊自動(dòng)補(bǔ)y個(gè)0
負(fù)數(shù):將值x的二進(jìn)制右移y位,左邊自動(dòng)補(bǔ)y個(gè)1
無符號(hào)右移:>>> 無論正數(shù)還是負(fù)數(shù),移動(dòng)后都自動(dòng)補(bǔ)0
】
總結(jié):
① 單目運(yùn)算符包括!、^、++、- -優(yōu)先級(jí)別高
?、? 優(yōu)先級(jí)別最低的是賦值運(yùn)算符
?、? ()優(yōu)先級(jí)最高,可通過()控制表達(dá)式的運(yùn)算順序。
④ 從右向左結(jié)合性的只有賦值運(yùn)算符、三目運(yùn)算符和多目運(yùn)算符。
?、? 算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符
//練習(xí)運(yùn)算符
public class Test {
public static void main(String[] args) {
int i=0;
double x=2.3;
System.out.println("Result 1:"+(--i+i+i++));
System.out.println("Result 2:"+(i+++i));
i+=i+(i=4);
System.out.println("Result 3:"+i);
i=3+3*2%i--;
System.out.println("Result 4:"+i);
x=x++;
System.out.println("Result 5:"+x);
x+=1.2*3+x++;
System.out.println("Result 6:"+x);
x=x%3+4*2+x--;
System.out.println("Result 7:"+x);
}
}
//運(yùn)行結(jié)果
Result 1:-3
Result 2:1
Result 3:6
Result 4:3
Result 5:2.3
Result 6:8.2
Result 7:18.4
6、鍵盤輸入
使用Scanner可以接收用戶鍵盤輸入的字符。
步驟:
①導(dǎo)入Scanner類:
Import java.util.*;
②創(chuàng)建Scanner對(duì)象:
Scanner input=new Scanner(System.in);
③獲得鍵盤輸入的數(shù)據(jù)
int n=input.nextInt();
String m=input.next();