比較運(yùn)算符,運(yùn)算完的結(jié)果必須是true或者false
邏輯運(yùn)算符用于連接兩個(gè)boolean類型的表達(dá)式
&:與? |:或
&:符號(hào)的運(yùn)算特點(diǎn):
左為true & 右為true = true
false & true = false
true & false = false
false & false = false
&:運(yùn)算規(guī)律
&運(yùn)算的兩邊只要有一個(gè)結(jié)果是false,結(jié)果肯定是false.
只有兩邊都為true,結(jié)果才是true
|:運(yùn)算特點(diǎn)
true | true = true
true | false = true
false | true = true
false | false = false
|:運(yùn)算規(guī)律
|運(yùn)算的兩邊只要有一個(gè)是true,結(jié)果肯定是true
只有兩邊都為false,結(jié)果是false
^:異或: 和或有點(diǎn)不一樣
^運(yùn)算特點(diǎn)
true ^ true = false
true ^ false = true
false ^ true = true
false ^ false = false
^異或的運(yùn)算規(guī)律
^符號(hào)的兩邊結(jié)果如果相同,結(jié)果是false
兩邊結(jié)果不同,結(jié)果是true
!:非運(yùn)算,判斷事物的另一面
!true = false
!false = true
重點(diǎn)
&&:
和&運(yùn)算的結(jié)果是一樣的,但運(yùn)算過程有點(diǎn)小區(qū)別
&:無論左邊的運(yùn)算結(jié)果是什么,右邊都參與運(yùn)算
&&:當(dāng)左邊為false時(shí),右邊不參與運(yùn)算
||:
和|運(yùn)算的結(jié)果是一樣的,但運(yùn)算過程有點(diǎn)小區(qū)別
|:無論左邊的運(yùn)算結(jié)果是什么,右邊都參與運(yùn)算
||:當(dāng)左邊為true時(shí),右邊不參與運(yùn)算
位運(yùn)算符(二進(jìn)制位運(yùn)算的符號(hào))
一個(gè)數(shù)異或同一個(gè)數(shù)兩次,結(jié)果還是這個(gè)數(shù)
<<:
左移幾位其實(shí)就是該數(shù)據(jù)乘以2的幾次方.<<:可以完成2的次冪運(yùn)算
>>:
右移幾位其實(shí)就是該數(shù)據(jù)除以2的幾次方.
<<:對(duì)于高位出現(xiàn)的的空位,原來高位是什么就用什么補(bǔ)這個(gè)空位
>>>:無符號(hào)右移:數(shù)據(jù)進(jìn)行右移時(shí),無論原高位是什么,空位都用0補(bǔ).
對(duì)于兩個(gè)整數(shù)變量的值進(jìn)行互換.
開發(fā)時(shí),使用第三方變量的形式,因?yàn)殚喿x性強(qiáng).
這種方式不要用,如果兩個(gè)整數(shù)值過大,或超出int范圍,會(huì)強(qiáng)制轉(zhuǎn)換.數(shù)據(jù)會(huì)變化.
a=a+b;
b=a-b
a=a-b.
面試時(shí)用
a=a^b
b=a^b
a=a^b
三元運(yùn)算符(就是if else 語句簡(jiǎn)寫格式)
*格式
(條件表達(dá)式)? 表達(dá)1? :表達(dá)式2
如果條件為true,運(yùn)算后的結(jié)果是表達(dá)式1
如果條件為false,運(yùn)算后的結(jié)果是表達(dá)式2
示例
獲取兩個(gè)數(shù)中大數(shù)
int x = 3 , y = 4 , z
z=(x>y)?x:y;//z變量存儲(chǔ)的就是兩個(gè)的大數(shù)
判斷句
if語句的第一種格式
if(條件表達(dá)式)
{
執(zhí)行語句
}
if語句必須明確自己的控制范圍(當(dāng)if語句控制的語句為單條語句時(shí)大括號(hào)可以省略)
沒有大括號(hào),if只能控制離它最近的單條語句
if語句的第二種格式
if(條件表達(dá)式)
{
執(zhí)行語句
}
else
{
執(zhí)行語句
}
簡(jiǎn)寫格式什么時(shí)候用,有一個(gè)具體的結(jié)果是,可以簡(jiǎn)化寫成三元運(yùn)算符
if語句的第三種格式
if(條件表達(dá)式)
{
執(zhí)行語句
}
else if(條件表達(dá)式)
{
執(zhí)行語句
}
-----
else
{
執(zhí)行語句
}
switch(表達(dá)式)
{
case 取值1:
執(zhí)行語句;
break;
case 取值2
執(zhí)行語句;
break;
... ..
default:
執(zhí)行語句;
break;
}
if語句和switch語句的區(qū)別
if和switch的應(yīng)用:
if:
1.對(duì)具體的值進(jìn)行判斷
2.對(duì)區(qū)間判斷
3.對(duì)運(yùn)算結(jié)果是boolean類型的表達(dá)式進(jìn)行判斷
switch:
1.對(duì)具體的值進(jìn)行判斷
2.值得個(gè)數(shù)通常是固定的
對(duì)于幾個(gè)固定的值判斷,建議使用switch語句,因?yàn)閟witch語句會(huì)將具體的答案都加載進(jìn)內(nèi)存.
效率相對(duì)高一點(diǎn).
循環(huán)結(jié)構(gòu)
代表語句:
while,do while, for
while語句格式: do while語句格式:
while(條件表達(dá)式)? ? ? ? do
{ {
執(zhí)行語句;? ? ? ? 執(zhí)行語句;
}? ? ? ? ? ? ? ? ? ? ? ? }while(條件表達(dá)式)
do while特點(diǎn):
條件無論是否滿足,循環(huán)體至少執(zhí)行一次.
for語句格式:
for(初始化表達(dá)式;循環(huán)條件表達(dá)式;循環(huán)后的操作表達(dá)式)
{
執(zhí)行語句;(循環(huán)體)
}
注:
1.for里面的連個(gè)表達(dá)式運(yùn)行的順序,初始化使只讀一次,判斷循環(huán)條件,為真就執(zhí)行循環(huán)體,
然后再執(zhí)行循環(huán)后的操作表達(dá)式,接著繼續(xù)判斷循環(huán)條件,重復(fù)整個(gè)過程,直到條件不滿足為止.
2.while與for可以互換,區(qū)別在于for為循環(huán)而定義的變量在for循環(huán)結(jié)束就是在內(nèi)存中釋放.
而while循環(huán)使用的變量結(jié)束后還可以繼續(xù)使用.
3.最簡(jiǎn)單無限循環(huán)格式:while(true),for(::),無限循環(huán)存在的原因是并不知道循環(huán)多少此,
而是根據(jù)某些條件,來控制循環(huán)
for和while的特點(diǎn):
1.for和while可以互換
2.格式上的不同,在使用上有點(diǎn)小區(qū)別
如果需要通過變量來對(duì)循環(huán)進(jìn)行控制,該變量只作為循環(huán)增量存在時(shí),區(qū)別就體現(xiàn)出來了
什么時(shí)候使用循環(huán)結(jié)構(gòu)呢?
當(dāng)對(duì)某些代碼執(zhí)行很多次時(shí),可以使用循環(huán)結(jié)構(gòu)完成
當(dāng)對(duì)一個(gè)條件進(jìn)行一次判斷時(shí),可以使用if語句.
當(dāng)對(duì)一個(gè)條件進(jìn)行多次判斷時(shí),可以使用while語句.
注意:
在使用循環(huán)時(shí),一定要明確哪些語句需要參與循環(huán),哪些不需要
循環(huán)通常情況下,需要定義條件,需要控制次數(shù)