&&與&的區(qū)別
a:最終結(jié)果一樣
b:&&具有短路效果度气。左邊是false,右邊不執(zhí)行
||與|的區(qū)別
a:最終的結(jié)果一樣
b:||具有短路效果鄙漏,左邊為true胀茵,右邊不執(zhí)行
位運(yùn)算符的基本用法
&:有0則0
|:有1則1
^:相同為0红符,不同為1 特點(diǎn):一個(gè)數(shù)據(jù)對(duì)另一個(gè)數(shù)據(jù)位異或兩次赞弥,該數(shù)本身不變
~:按位取反
例.實(shí)現(xiàn)兩個(gè)整數(shù)變量的交換(不需要定義第三方變量)
int x = 10;
int y = 5;
//需要第三方變量正罢,開(kāi)發(fā)推薦用這種
/int temp;
temp = x;
x = y;
y = temp;/
//不需要定義第三方變量阵漏,有弊端,有可能超過(guò)int的取值范圍
/*x = x+ y;
y = x - y;
x = x-y;
// 不需要第三方變量翻具,通過(guò)^來(lái)做
x = x ^ y;
y = x ^ y;
x = x ^ y;
System.out.println(" x = " + x + ",y = " +y);
}
}
左移<< 左邊最高位丟棄履怯,右邊補(bǔ)0 向左移動(dòng)幾位就是乘以2的幾次冪。
右移>> 最高位為0裆泳,左邊補(bǔ)齊0叹洲;最高位1,左邊補(bǔ)齊1 向右移動(dòng)幾位就是除以2的幾次冪
無(wú)符號(hào)右移>>> 無(wú)論最高位為0還是1工禾,左邊補(bǔ)齊0
三元運(yùn)算符的練習(xí)
例1
比較兩個(gè)整數(shù)是否相同
int x =10;
int y = 5;
boolean b = (x==y)? true : false;
System.out.println("b = " + b);
}
}
例2
獲取三個(gè)整數(shù)中的最大值
int a = 10;
int b = 20;
int c = 30;
//先比較任意兩個(gè)數(shù)的值,找出這兩個(gè)數(shù)中的最大值
int temp = (a > b) ? a : b;
//用前兩個(gè)數(shù)的最大值與第三個(gè)數(shù)比較,獲取最大值
int max = (temp > c) ? temp : c;
System.out.println("max =" + max);
}
}
鍵盤(pán)錄入的基本格式
a:導(dǎo)包
* 格式:
* import java.util.Scanner;
* 位置:
* 在class上面运提。
* b:創(chuàng)建鍵盤(pán)錄入對(duì)象
* 格式:
* Scanner sc = new Scanner(System.in);
* c:通過(guò)對(duì)象獲取數(shù)據(jù)
* 格式:
* int x = sc.nextInt();
選擇結(jié)構(gòu)if語(yǔ)句注意事項(xiàng)
a.比較表達(dá)式無(wú)論簡(jiǎn)單還是復(fù)雜,結(jié)果必須是boolean類(lèi)型
b.if語(yǔ)句控制的語(yǔ)句體如果是一條語(yǔ)句闻葵,大括號(hào)可以省略民泵;如果是多條語(yǔ)句,就不能省略槽畔,建議永遠(yuǎn)不要省略
c.一般來(lái)說(shuō)栈妆,有左大括號(hào)就沒(méi)有分號(hào),有分號(hào)就沒(méi)有左大括號(hào)
選擇結(jié)構(gòu)switch語(yǔ)句的注意事項(xiàng)
a.case后面只能是常量厢钧,不能是變量鳞尔,而且,多個(gè)case后面的值不能出現(xiàn)相同的
b.default可以省略嗎早直?
可以省略寥假,但是不建議,因?yàn)樗淖饔檬菍?duì)不正確的情況給出提示
特殊情況:case就可以把值固定
c.break可以省略嗎霞扬?
最后一個(gè)可以省略昧旨,其他最好不要省略
會(huì)出現(xiàn)一個(gè)現(xiàn)象:case穿透
最終我們建議不要省略
d.default一定要在最后嗎?
不是祥得,可以在任意位置兔沃,但是建議在最后。
e.switch語(yǔ)句的結(jié)束條件
a.遇到break就結(jié)束了
b.執(zhí)行到switch的右大括號(hào)就結(jié)束了
例題
lass Test2_Switch {
public static void main(String[] args) {
A:看程序?qū)懡Y(jié)果:
int x = 2;
int y = 3;
switch(x){
default:
y++;
break;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);*/ y=4
B:看程序?qū)懡Y(jié)果:
int x = 2;
int y = 3;
switch(x){
default:
y++;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);
}
}
y=6
總結(jié)switch語(yǔ)句和If語(yǔ)句的各自使用場(chǎng)景
switch建議判斷固定值的時(shí)候用
if建議判斷區(qū)間或范圍的時(shí)候用