在Java中,邏輯運算有And、Or、Not三種,其中And、Or又分為普通邏輯運算和短路邏輯運算兩種。其中普通邏輯運算And用“”表示,“|”表示或者關(guān)系。短路邏輯運算的時候,“”表示短路與,“||”表示短路或。

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)提供從項目策劃、軟件開發(fā),軟件安全維護、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評估等整套的建站服務(wù),主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè),app軟件開發(fā)公司以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。創(chuàng)新互聯(lián)深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
1、一般邏輯運算需要在邏輯運算符兩側(cè)的邏輯表達式,都參與邏輯運算,其表達式的值進行比較,依次計算出最后的值。
2、短路邏輯運算符需要首先計算最左邊的表達式,如果最左邊的表達式成立,則不再進行整個表達式的判斷,直接取最左邊的表達式為整個表達式的值。
下面的例子雖然輸出的值一樣,但是運算的方式不一樣:
private
void
testAnd(boolean
on
,boolean
tw){
System.out.println("truefalse
=
"+
(truefalse));
System.out.println("falsefalse
=
"+
(falsefalse));
System.out.println("falsetrue
=
"+
(falsetrue));
System.out.println("truetrue
=
"+
(truetrue));
System.out.println("
");
System.out.println("truefalse
=
"+
(truefalse));
System.out.println("falsefalse
=
"+
(falsefalse));
System.out.println("falsetrue
=
"+
(falsetrue));
System.out.println("truetrue
=
"+
(truetrue));
System.out.println("
");
System.out.println("true||false
=
"+
(true||false));
System.out.println("false||false
=
"+
(false||false));
System.out.println("false||true
=
"+
(false||true));
System.out.println("true||true
=
"+
(true||true));
System.out.println("
");
System.out.println("true|false
=
"+
(true|false));
System.out.println("false|false
=
"+
(false|false));
System.out.println("false|true
=
"+
(false|true));
System.out.println("true|true
=
"+
(true|true));
}
輸出結(jié)果為:
短路或“”只有在左邊的表達式值為true時,才會考慮右邊表達式的值,否則直接取左邊的值為整個表達式的值;
truefalse
=
false
falsefalse
=
false
falsetrue
=
false
truetrue
=
true
//全部計算表達式兩面的值,然后取值運算;
truefalse
=
false
falsefalse
=
false
falsetrue
=
false
truetrue
=
true
短路或“||”只有在左邊的表達式值為false時,才會考慮右邊表達式的值,否則直接取左邊的值為整個表達式的值;
true||false
=
true
false||false
=
false
false||true
=
true
true||true
=
true
普通或"|"全部計算表達式兩面的值,然后得出結(jié)果
true|false
=
true
false|false
=
false
false|true
=
true
true|true
=
true
適用短路運算的條件
1)、表達式前后的邏輯條件有明顯的順序關(guān)聯(lián)關(guān)系,順序條件早的在表達式的左邊;
2)、邏輯運算符比較少,不會有嵌套或者短路與非短路邏輯混合的情況;
3)、使用短路運算,必須清楚的明白所要判斷的邏輯值的具體細節(jié);
4)、如果""和"||"混用,則不考慮使用短路運算;
一般如果要判斷兩個條件時用連接;
如;
if(i10i0)表示如果變量i的值即大于0,且小10,就執(zhí)行下面的代碼.
比如:
boolean ok = false;
if(!ok)
{
System.out.println("ok");
}
//結(jié)果會打印ok;
if(!End)return;和if(End==false)return
是一個意思:如果End 為false ,就返回.
if(End)return;和if(End==true)return;是一個意思;
祝樓主成功.
boolean flag=false;
if(alist!=null alist.size()!=0){
for(int i=0;ialist.size();i++){
A a=(A)alist.get(i);
int m=a.getB();
if(m!=3){
flag=true;
if(m==1){
resp.sendRedirect("you1.htm");
break;
}else if(m==2){
resp.sendRedirect("you1.htm");
break;
}
}
}
if(!flag) resp.sendRedirect("no.htm");
}
else{resp.sendRedirect("no.htm");}
java邏輯代碼塊是指使用{}大括號內(nèi)的代碼片段,為了實現(xiàn)某種邏輯和主類區(qū)分開來的一段代碼。分為靜態(tài)代碼塊、普通代碼塊,示例如下:
/**
*?靜態(tài)代碼塊先于構(gòu)造器執(zhí)行?普通塊先于構(gòu)造塊??只執(zhí)行一次
*?凡是靜態(tài)的與對象無關(guān),先于對象存在的;?凡是靜態(tài)的都是共享的
*
*/
public?class?Test?{
static?{//靜態(tài)代碼塊
System.out.println("static");
}
{
System.out.println("普通塊2");
}
public?Test()?{
System.out.println("構(gòu)造器");
}
||是“或” 只要有一個是真就是正 比如 ture||false 這個結(jié)果就是true
是“與” 只有兩面都是真的時候才是真 比如 truetrue 結(jié)果是true
上面的結(jié)果經(jīng)過分析之后是:true
答案是C:
其實很簡單,你拆開看,比如
A: 154 15短路4 這根本不是邏輯!
B,D都一樣..
如果他們是非短路,就是位賦值運算!
我在補充下:何為邏輯,記簡單一點就好了,這么記:真嗎?假嗎?
真嗎?假嗎?
假嗎?真嗎?
真嗎?真嗎?
你套這個公式:發(fā)現(xiàn)只有C合理!
標題名稱:java判斷邏輯代碼,java中邏輯或
網(wǎng)頁URL:http://chinadenli.net/article49/dsgspeh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈、小程序開發(fā)、全網(wǎng)營銷推廣、網(wǎng)站排名、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)