這篇文章將為大家詳細講解有關(guān)java基礎(chǔ)之運算符與邏輯控制的示例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
網(wǎng)站是企業(yè)的互聯(lián)網(wǎng)名片,是開展互聯(lián)網(wǎng)業(yè)務(wù)基礎(chǔ)平臺。在目標明確的基礎(chǔ)上,創(chuàng)新互聯(lián)憑借團隊豐富的設(shè)計經(jīng)驗完成網(wǎng)站的構(gòu)思創(chuàng)意即總體設(shè)計方案,自成立以來,一直致力于為企業(yè)提供從申請域名、網(wǎng)站策劃、網(wǎng)站設(shè)計、高端網(wǎng)站設(shè)計、電子商務(wù)、外貿(mào)網(wǎng)站制作、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。
運算符和邏輯控制
運算符
java中的運算符可以分為以下幾種:
算符運算符
關(guān)系運算符
位運算符
邏輯運算符
賦值運算符
三目運算符
操作符 | 描述 |
---|---|
+ | 加法 |
- | 減法 |
* | 乘法 |
/ | 除法 |
% | 取余(模) |
++ | 自增 |
-- | 自減 |
自增和自減操作符根據(jù)位置不同,執(zhí)行的順序也不同。
前綴自增自減法(++a,--a): 先進行自增或者自減運算,再進行表達式運算。
后綴自增自減法(a++,a--): 先進行表達式運算,再進行自增或者自減運算。
運算符 | 描述 |
---|---|
== | 檢查如果兩個操作數(shù)的值是否相等,如果相等則條件為真 |
!= | 檢查如果兩個操作數(shù)的值是否相等,如果值不相等則條件為真 |
> | 檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是那么條件為真 |
< | 檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是那么條件為真 |
>= | 檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是那么條件為真 |
<= | 檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是那么條件為真 |
運算符 | 描述 | |
---|---|---|
& | 與,如果相對應(yīng)位都是1,則結(jié)果為1,否則為0 | |
\ | 或,如果相對應(yīng)位都是0,則結(jié)果為0,否則為1 | |
^ | 異或,如果相對應(yīng)位值相同,則結(jié)果為0,否則為1 | |
? | 取反,按位取反運算符翻轉(zhuǎn)操作數(shù)的每一位,即0變成1,1變成0 | |
<< | 按位左移運算符。左操作數(shù)按位左移右操作數(shù)指定的位數(shù) | |
>> | 按位右移運算符。左操作數(shù)按位右移右操作數(shù)指定的位數(shù) | |
>>> | 按位右移補零操作符。左操作數(shù)的值按右操作數(shù)指定的位數(shù)右移,移動得到的空位以零填充 |
運算符 | 描述 | ||
---|---|---|---|
&& | 邏輯與。當且僅當兩個操作數(shù)都為真,條件才為真 | ||
\ | \ | 邏輯或。如果任何兩個操作數(shù)任何一個為真,條件為真 | |
! | 邏輯非。用來反轉(zhuǎn)操作數(shù)的邏輯狀態(tài)。如果條件為true,則邏輯非運算符將得到false |
進行邏輯判斷的順序為從左到右。
當進行邏輯判斷時有普通與(&)、普通或(|)和短路與(&&)、短路或(||)。
他們的區(qū)別為:
使用普通與、或操作時,所有的判斷條件都會執(zhí)行; 使用短路與運算時,只要有一個判斷返回了false,后續(xù)的判斷就不再執(zhí)行。 使用短路或操作時,只要有一個判斷返回了true,后學的判斷就不再執(zhí)行。
運算符 | 描述 | |
---|---|---|
= | 簡單的賦值運算符,將右操作數(shù)的值賦給左側(cè)操作數(shù) | |
+= | 加和賦值操作符,它把左操作數(shù)和右操作數(shù)相加賦值給左操作數(shù) | |
-= | 減和賦值操作符,它把左操作數(shù)和右操作數(shù)相減賦值給左操作數(shù) | |
*= | 乘和賦值操作符,它把左操作數(shù)和右操作數(shù)相乘賦值給左操作數(shù) | |
/= | 除和賦值操作符,它把左操作數(shù)和右操作數(shù)相除賦值給左操作數(shù) | |
(%)= | 取模和賦值操作符,它把左操作數(shù)和右操作數(shù)取模后賦值給左操作數(shù) | |
<<= | 左移位賦值運算符,C << = 2等價于C = C << 2 | |
>>= | 右移位賦值運算符,C >> = 2等價于C = C >> 2 | |
&= | 按位與賦值運算符,C&= 2等價于C = C&2 | |
^= | 按位異或賦值操作符,C ^ = 2等價于C = C ^ 2 | |
\ | = | 按位或賦值操作符 |
三目運算符也被稱為條件運算符,該運算符有3個操作數(shù),并且需要判斷布爾表達式的值。該運算符的主要是決定哪個值應(yīng)該賦值給變量。表達式如下:
variable x = (expression) ? value if true : value if false
程序邏輯主要分為三種邏輯結(jié)構(gòu):
順序結(jié)構(gòu)
分支結(jié)構(gòu)
循環(huán)結(jié)構(gòu)
代碼均是由上至下,由左至右順序執(zhí)行。
分支結(jié)構(gòu)是一種判斷結(jié)構(gòu),有兩類語法支持:if、switch
此類語句有多種定義形式
if
if(布爾表達式) { //如果布爾表達式為true將執(zhí)行的語句 }
if ...else
if(布爾表達式){ //如果布爾表達式的值為true }else{ //如果布爾表達式的值為false }
if ...else if ... else
if(布爾表達式 1){ //如果布爾表達式 1的值為true執(zhí)行代碼 }else if(布爾表達式 2){ //如果布爾表達式 2的值為true執(zhí)行代碼 }else if(布爾表達式 3){ //如果布爾表達式 3的值為true執(zhí)行代碼 }else { //如果以上布爾表達式都不為true執(zhí)行代碼 }
嵌套的 if…else
if(布爾表達式 1){ ////如果布爾表達式 1的值為true執(zhí)行代碼 if(布爾表達式 2){ ////如果布爾表達式 2的值為true執(zhí)行代碼 } }
if的判斷支持布爾表達式,switch 語句不支持布爾表達式的判斷。
最早只支持整數(shù)或者字符判斷,jdk1.6支持了枚舉判斷,jdk1.7支持了String的判斷。
語法格式如下:
switch(expression){ case value : //語句 break; //可選 case value : //語句 break; //可選 //你可以有任意數(shù)量的case語句 default : //可選 //語句 }
switch case 語句有如下規(guī)則:
switch 語句中的變量類型可以是:整數(shù)、char、枚舉、String,同時 case 標簽必須為字符串常量或字面量。
switch 語句可以擁有多個 case 語句。每個 case 后面跟一個要比較的值和冒號。
case 語句中的值的數(shù)據(jù)類型必須與變量的數(shù)據(jù)類型相同,而且只能是常量或者字面常量。
當變量的值與 case 語句的值相等時,那么 case 語句之后的語句開始執(zhí)行,直到 break 語句出現(xiàn)才會跳出 switch 語句。
當遇到 break 語句時,switch 語句終止。程序跳轉(zhuǎn)到 switch 語句后面的語句執(zhí)行。case 語句不必須要包含 break 語句。如果沒有 break 語句出現(xiàn),程序會繼續(xù)執(zhí)行下一條 case 語句,直到出現(xiàn) break 語句。
switch 語句可以包含一個 default 分支,該分支一般是 switch 語句的最后一個分支(可以在任何位置,但建議在最后一個)。default 在沒有 case 語句的值和變量值相等的時候執(zhí)行。default 分支不需要 break 語句。
switch case 執(zhí)行時,一定會先進行匹配,匹配成功返回當前 case 的值,再根據(jù)是否有 break,判斷是否繼續(xù)輸出,或是跳出判斷。
Java中有三種主要的循環(huán)結(jié)構(gòu):
while 循環(huán)
do…while 循環(huán)
for 循環(huán)
while是最基本的循環(huán),它的結(jié)構(gòu)為:
while( 布爾表達式 ) { //循環(huán)內(nèi)容 }
只要布爾表達式為 true,循環(huán)就會一直執(zhí)行下去。
對于 while 語句而言,如果不滿足條件,則不能進入循環(huán)。
do…while 循環(huán)和 while 循環(huán)相似,不同的是,do…while 循環(huán)至少會執(zhí)行一次。
do { //代碼語句 }while(布爾表達式);
注意:布爾表達式在循環(huán)體的后面,所以語句塊在檢測布爾表達式之前已經(jīng)執(zhí)行了。 如果布爾表達式的值為 true,則語句塊一直執(zhí)行,直到布爾表達式的值為 false。
for循環(huán)執(zhí)行的次數(shù)是在執(zhí)行前就確定的。語法格式如下:
for(初始化; 布爾表達式; 更新) { //代碼語句 }
關(guān)于 for 循環(huán)有以下幾點說明:
最先執(zhí)行初始化步驟??梢月暶饕环N類型,但可初始化一個或多個循環(huán)控制變量,也可以是空語句。
然后,檢測布爾表達式的值。如果為 true,循環(huán)體被執(zhí)行。如果為false,循環(huán)終止,開始執(zhí)行循環(huán)體后面的語句。
執(zhí)行一次循環(huán)后,更新循環(huán)控制變量。
再次檢測布爾表達式。循環(huán)執(zhí)行上面的過程。
JDK1.5 引入了一種主要用于數(shù)組的增強型 for 循環(huán)。
Java 增強 for 循環(huán)語法格式如下:
for(聲明語句 : 表達式) { //代碼句子 }
聲明語句:聲明新的局部變量,該變量的類型必須和數(shù)組元素的類型匹配。其作用域限定在循環(huán)語句塊,其值與此時數(shù)組元素的值相等。
表達式:表達式是要訪問的數(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("\n"); String [] names ={"James", "Larry", "Tom", "Lacy"}; for( String name : names ) { System.out.print( name ); System.out.print(","); } } }
break
主要用在循環(huán)語句或者 switch,在switch語句中,用來跳出整個語句塊。在循環(huán)語句中跳出最里層的循環(huán),并且繼續(xù)執(zhí)行該循環(huán)下面的語句。
continue
適用于任何循環(huán)控制結(jié)構(gòu)中。作用是讓程序立刻跳轉(zhuǎn)到下一次循環(huán)的迭代。
在 for 循環(huán)中,continue 語句使程序立即跳轉(zhuǎn)到更新語句。
在 while 或者 do…while 循環(huán)中,程序立即跳轉(zhuǎn)到布爾表達式的判斷語句。
關(guān)于java基礎(chǔ)之運算符與邏輯控制的示例就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。