摘要:如果條件為,則邏輯非運(yùn)算符將得到進(jìn)行邏輯判斷的順序?yàn)閺淖蟮接?。再次檢測(cè)布爾表達(dá)式。其作用域限定在循環(huán)語(yǔ)句塊,其值與此時(shí)數(shù)組元素的值相等。
運(yùn)算符和邏輯控制 運(yùn)算符
java中的運(yùn)算符可以分為以下幾種:
算符運(yùn)算符
關(guān)系運(yùn)算符
位運(yùn)算符
邏輯運(yùn)算符
賦值運(yùn)算符
三目運(yùn)算符
算符運(yùn)算符操作符 | 描述 |
---|---|
+ | 加法 |
- | 減法 |
* | 乘法 |
/ | 除法 |
% | 取余(模) |
++ | 自增 |
-- | 自減 |
自增和自減操作符根據(jù)位置不同,執(zhí)行的順序也不同。
前綴自增自減法(++a,--a): 先進(jìn)行自增或者自減運(yùn)算,再進(jìn)行表達(dá)式運(yùn)算。
后綴自增自減法(a++,a--): 先進(jìn)行表達(dá)式運(yùn)算,再進(jìn)行自增或者自減運(yùn)算。
關(guān)系運(yùn)算符運(yùn)算符 | 描述 |
---|---|
== | 檢查如果兩個(gè)操作數(shù)的值是否相等,如果相等則條件為真 |
!= | 檢查如果兩個(gè)操作數(shù)的值是否相等,如果值不相等則條件為真 |
> | 檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是那么條件為真 |
< | 檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是那么條件為真 |
>= | 檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是那么條件為真 |
<= | 檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是那么條件為真 |
運(yùn)算符 | 描述 | |
---|---|---|
& | 與,如果相對(duì)應(yīng)位都是1,則結(jié)果為1,否則為0 | |
或,如果相對(duì)應(yīng)位都是0,則結(jié)果為0,否則為1 | ||
^ | 異或,如果相對(duì)應(yīng)位值相同,則結(jié)果為0,否則為1 | |
? | 取反,按位取反運(yùn)算符翻轉(zhuǎn)操作數(shù)的每一位,即0變成1,1變成0 | |
<< | 按位左移運(yùn)算符。左操作數(shù)按位左移右操作數(shù)指定的位數(shù) | |
>> | 按位右移運(yùn)算符。左操作數(shù)按位右移右操作數(shù)指定的位數(shù) | |
>>> | 按位右移補(bǔ)零操作符。左操作數(shù)的值按右操作數(shù)指定的位數(shù)右移,移動(dòng)得到的空位以零填充 |
運(yùn)算符 | 描述 | ||
---|---|---|---|
&& | 邏輯與。當(dāng)且僅當(dāng)兩個(gè)操作數(shù)都為真,條件才為真 | ||
邏輯或。如果任何兩個(gè)操作數(shù)任何一個(gè)為真,條件為真 | |||
! | 邏輯非。用來(lái)反轉(zhuǎn)操作數(shù)的邏輯狀態(tài)。如果條件為true,則邏輯非運(yùn)算符將得到false |
進(jìn)行邏輯判斷的順序?yàn)閺淖蟮接摇?/p>
當(dāng)進(jìn)行邏輯判斷時(shí)有普通與(&)、普通或(|)和短路與(&&)、短路或(||)。
他們的區(qū)別為:
使用普通與、或操作時(shí),所有的判斷條件都會(huì)執(zhí)行; 使用短路與運(yùn)算時(shí),只要有一個(gè)判斷返回了false,后續(xù)的判斷就不再執(zhí)行。 使用短路或操作時(shí),只要有一個(gè)判斷返回了true,后學(xué)的判斷就不再執(zhí)行。賦值運(yùn)算
運(yùn)算符 | 描述 | |
---|---|---|
= | 簡(jiǎn)單的賦值運(yùn)算符,將右操作數(shù)的值賦給左側(cè)操作數(shù) | |
+= | 加和賦值操作符,它把左操作數(shù)和右操作數(shù)相加賦值給左操作數(shù) | |
-= | 減和賦值操作符,它把左操作數(shù)和右操作數(shù)相減賦值給左操作數(shù) | |
*= | 乘和賦值操作符,它把左操作數(shù)和右操作數(shù)相乘賦值給左操作數(shù) | |
/= | 除和賦值操作符,它把左操作數(shù)和右操作數(shù)相除賦值給左操作數(shù) | |
(%)= | 取模和賦值操作符,它把左操作數(shù)和右操作數(shù)取模后賦值給左操作數(shù) | |
<<= | 左移位賦值運(yùn)算符,C << = 2等價(jià)于C = C << 2 | |
>>= | 右移位賦值運(yùn)算符,C >> = 2等價(jià)于C = C >> 2 | |
&= | 按位與賦值運(yùn)算符,C&= 2等價(jià)于C = C&2 | |
^= | 按位異或賦值操作符,C ^ = 2等價(jià)于C = C ^ 2 | |
= | 按位或賦值操作符 |
三目運(yùn)算符也被稱為條件運(yùn)算符,該運(yùn)算符有3個(gè)操作數(shù),并且需要判斷布爾表達(dá)式的值。該運(yùn)算符的主要是決定哪個(gè)值應(yīng)該賦值給變量。表達(dá)式如下:
variable x = (expression) ? value if true : value if false邏輯控制
程序邏輯主要分為三種邏輯結(jié)構(gòu):
順序結(jié)構(gòu)
分支結(jié)構(gòu)
循環(huán)結(jié)構(gòu)
順序結(jié)構(gòu)代碼均是由上至下,由左至右順序執(zhí)行。
分支結(jié)構(gòu)分支結(jié)構(gòu)是一種判斷結(jié)構(gòu),有兩類語(yǔ)法支持:if、switch
if 分支語(yǔ)句此類語(yǔ)句有多種定義形式
if
if(布爾表達(dá)式) { //如果布爾表達(dá)式為true將執(zhí)行的語(yǔ)句 }
if ...else
if(布爾表達(dá)式){ //如果布爾表達(dá)式的值為true }else{ //如果布爾表達(dá)式的值為false }
if ...else if ... else
if(布爾表達(dá)式 1){ //如果布爾表達(dá)式 1的值為true執(zhí)行代碼 }else if(布爾表達(dá)式 2){ //如果布爾表達(dá)式 2的值為true執(zhí)行代碼 }else if(布爾表達(dá)式 3){ //如果布爾表達(dá)式 3的值為true執(zhí)行代碼 }else { //如果以上布爾表達(dá)式都不為true執(zhí)行代碼 }
嵌套的 if…else
if(布爾表達(dá)式 1){ ////如果布爾表達(dá)式 1的值為true執(zhí)行代碼 if(布爾表達(dá)式 2){ ////如果布爾表達(dá)式 2的值為true執(zhí)行代碼 } }switch 語(yǔ)句
if的判斷支持布爾表達(dá)式,switch 語(yǔ)句不支持布爾表達(dá)式的判斷。
最早只支持整數(shù)或者字符判斷,jdk1.6支持了枚舉判斷,jdk1.7支持了String的判斷。
語(yǔ)法格式如下:
switch(expression){ case value : //語(yǔ)句 break; //可選 case value : //語(yǔ)句 break; //可選 //你可以有任意數(shù)量的case語(yǔ)句 default : //可選 //語(yǔ)句 }
switch case 語(yǔ)句有如下規(guī)則:
switch 語(yǔ)句中的變量類型可以是:整數(shù)、char、枚舉、String,同時(shí) case 標(biāo)簽必須為字符串常量或字面量。
switch 語(yǔ)句可以擁有多個(gè) case 語(yǔ)句。每個(gè) case 后面跟一個(gè)要比較的值和冒號(hào)。
case 語(yǔ)句中的值的數(shù)據(jù)類型必須與變量的數(shù)據(jù)類型相同,而且只能是常量或者字面常量。
當(dāng)變量的值與 case 語(yǔ)句的值相等時(shí),那么 case 語(yǔ)句之后的語(yǔ)句開(kāi)始執(zhí)行,直到 break 語(yǔ)句出現(xiàn)才會(huì)跳出 switch 語(yǔ)句。
當(dāng)遇到 break 語(yǔ)句時(shí),switch 語(yǔ)句終止。程序跳轉(zhuǎn)到 switch 語(yǔ)句后面的語(yǔ)句執(zhí)行。case 語(yǔ)句不必須要包含 break 語(yǔ)句。如果沒(méi)有 break 語(yǔ)句出現(xiàn),程序會(huì)繼續(xù)執(zhí)行下一條 case 語(yǔ)句,直到出現(xiàn) break 語(yǔ)句。
switch 語(yǔ)句可以包含一個(gè) default 分支,該分支一般是 switch 語(yǔ)句的最后一個(gè)分支(可以在任何位置,但建議在最后一個(gè))。default 在沒(méi)有 case 語(yǔ)句的值和變量值相等的時(shí)候執(zhí)行。default 分支不需要 break 語(yǔ)句。
switch case 執(zhí)行時(shí),一定會(huì)先進(jìn)行匹配,匹配成功返回當(dāng)前 case 的值,再根據(jù)是否有 break,判斷是否繼續(xù)輸出,或是跳出判斷。
循環(huán)結(jié)構(gòu)Java中有三種主要的循環(huán)結(jié)構(gòu):
while 循環(huán)
do…while 循環(huán)
for 循環(huán)
while循環(huán)while是最基本的循環(huán),它的結(jié)構(gòu)為:
while( 布爾表達(dá)式 ) { //循環(huán)內(nèi)容 }
只要布爾表達(dá)式為 true,循環(huán)就會(huì)一直執(zhí)行下去。
do…while 循環(huán)對(duì)于 while 語(yǔ)句而言,如果不滿足條件,則不能進(jìn)入循環(huán)。
do…while 循環(huán)和 while 循環(huán)相似,不同的是,do…while 循環(huán)至少會(huì)執(zhí)行一次。
do { //代碼語(yǔ)句 }while(布爾表達(dá)式);
注意:布爾表達(dá)式在循環(huán)體的后面,所以語(yǔ)句塊在檢測(cè)布爾表達(dá)式之前已經(jīng)執(zhí)行了。 如果布爾表達(dá)式的值為 true,則語(yǔ)句塊一直執(zhí)行,直到布爾表達(dá)式的值為 false。
for循環(huán)for循環(huán)執(zhí)行的次數(shù)是在執(zhí)行前就確定的。語(yǔ)法格式如下:
for(初始化; 布爾表達(dá)式; 更新) { //代碼語(yǔ)句 }
關(guān)于 for 循環(huán)有以下幾點(diǎn)說(shuō)明:
最先執(zhí)行初始化步驟。可以聲明一種類型,但可初始化一個(gè)或多個(gè)循環(huán)控制變量,也可以是空語(yǔ)句。
然后,檢測(cè)布爾表達(dá)式的值。如果為 true,循環(huán)體被執(zhí)行。如果為false,循環(huán)終止,開(kāi)始執(zhí)行循環(huán)體后面的語(yǔ)句。
執(zhí)行一次循環(huán)后,更新循環(huán)控制變量。
再次檢測(cè)布爾表達(dá)式。循環(huán)執(zhí)行上面的過(guò)程。
Java 增強(qiáng) for 循環(huán)JDK1.5 引入了一種主要用于數(shù)組的增強(qiáng)型 for 循環(huán)。
Java 增強(qiáng) for 循環(huán)語(yǔ)法格式如下:
for(聲明語(yǔ)句 : 表達(dá)式) { //代碼句子 }
聲明語(yǔ)句:聲明新的局部變量,該變量的類型必須和數(shù)組元素的類型匹配。其作用域限定在循環(huán)語(yǔ)句塊,其值與此時(shí)數(shù)組元素的值相等。
表達(dá)式:表達(dá)式是要訪問(wèn)的數(shù)組、集合,或者是返回值為數(shù)組的方法。
demo:
public class Test { public static void main(String args[]){ int [] numbers = {10, 20, 30, 40, 50}; for(int x : numbers ){ System.out.print( x ); System.out.print(","); } System.out.print(" "); String [] names ={"James", "Larry", "Tom", "Lacy"}; for( String name : names ) { System.out.print( name ); System.out.print(","); } } }break/continue
break主要用在循環(huán)語(yǔ)句或者 switch,在switch語(yǔ)句中,用來(lái)跳出整個(gè)語(yǔ)句塊。在循環(huán)語(yǔ)句中跳出最里層的循環(huán),并且繼續(xù)執(zhí)行該循環(huán)下面的語(yǔ)句。
continue適用于任何循環(huán)控制結(jié)構(gòu)中。作用是讓程序立刻跳轉(zhuǎn)到下一次循環(huán)的迭代。
在 for 循環(huán)中,continue 語(yǔ)句使程序立即跳轉(zhuǎn)到更新語(yǔ)句。
在 while 或者 do…while 循環(huán)中,程序立即跳轉(zhuǎn)到布爾表達(dá)式的判斷語(yǔ)句。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/73448.html
摘要:注該筆記適合有基礎(chǔ)或者有復(fù)習(xí)需求的小伙伴哦預(yù)習(xí)的話建議直接看視頻俺舅是鏈接邀請(qǐng)碼太過(guò)簡(jiǎn)單的知識(shí)點(diǎn)都被作者扔到回收站了所以這些知識(shí)點(diǎn)都是精華呦一快捷鍵與常見(jiàn)問(wèn)題運(yùn)行當(dāng)前程序其它運(yùn)行方法右鍵小蟲子圖像右邊的圖標(biāo)運(yùn)行錯(cuò)誤運(yùn)行 ...
摘要:異常也就是指程序運(yùn)行時(shí)發(fā)生錯(cuò)誤,而異常處理就是對(duì)這些錯(cuò)誤進(jìn)行處理和控制。有兩個(gè)重要的子類異常和錯(cuò)誤,二者都是異常處理的重要子類,各自都包含大量子類。需要注意的是,一旦某個(gè)捕獲到匹配的異常類型,將進(jìn)入異常處理代碼。 1,異?,F(xiàn)象 程序錯(cuò)誤分為三種:1,編譯錯(cuò)誤;2,運(yùn)行時(shí)錯(cuò)誤;3,邏輯錯(cuò)誤。 編譯錯(cuò)誤是因?yàn)槌绦驔](méi)有遵循語(yǔ)法規(guī)則,編譯程序能夠自己發(fā)現(xiàn)并且提示我們錯(cuò)誤的原因和位置,這...
摘要:,用于調(diào)用垃圾收集器,在調(diào)用時(shí),垃圾收集器將運(yùn)行以回收未使用的內(nèi)存空間。然而調(diào)用附帶一個(gè)免責(zé)聲明,無(wú)法保證對(duì)垃圾收集器的調(diào)用。所以并不能說(shuō)是完美主動(dòng)進(jìn)行了垃圾回收。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸JAVA開(kāi)發(fā)菜鳥還是業(yè)界資深人士,都希...
摘要:復(fù)合賦值運(yùn)算符通過(guò)的形式表示,表示算術(shù)運(yùn)算符。含有的運(yùn)算都為和都不等于,邏輯運(yùn)算符邏輯運(yùn)算符通常用于布爾值的操作,一般和關(guān)系運(yùn)算符配合使用,有三個(gè)邏輯運(yùn)算符邏輯與邏輯或邏輯非。無(wú)論這個(gè)值是什么數(shù)據(jù)類型,這個(gè)運(yùn)算符都會(huì)返回一個(gè)布爾值。 運(yùn)算符 一元運(yùn)算符 只能操作一個(gè)值的運(yùn)算符叫做一元運(yùn)算符 //后取值 先執(zhí)行運(yùn)算, 再取值 //前取值 先取值, 再執(zhí)行運(yùn)算 前自加: var x=...
閱讀 2142·2021-09-27 14:04
閱讀 1886·2019-08-30 15:55
閱讀 1707·2019-08-30 13:13
閱讀 1077·2019-08-30 13:07
閱讀 2757·2019-08-29 15:20
閱讀 3250·2019-08-29 12:42
閱讀 3348·2019-08-28 17:58
閱讀 3610·2019-08-28 17:56