java if and_关于java:if语句中可以有两个条件吗
我是Java編碼的初學(xué)者,因此我會(huì)定期瀏覽以我的基本知識(shí)查找初學(xué)者項(xiàng)目。 最近,我正在創(chuàng)建一個(gè)聊天程序,用戶可以在其中與我的計(jì)算機(jī)聊天。 這是代碼的一部分,因?yàn)槲也恍枰@示整個(gè)代碼:
System.out.println("Hello, what's our name? My name is" + answer4);
String a = scanner1.nextLine();
System.out.println("Ok, Hello," + a +", how was your day, good or bad?");
String b = scanner2.nextLine();
**if (b.equals("good"))** {
System.out.println("Thank goodness");
} else **if (b.equals("it was good"))** {
System.out.println("Thank goodness");
} else **if (b.equals("bad"))** {
System.out.println("Why was it bad?");
String c = scanner3.nextLine();
System.out.println("Don't worry, everything will be ok, ok?");
String d= scanner10.nextLine();
}
else **if (b.equals("it was bad"))**{
System.out.println("Why was it bad?");
String c = scanner3.nextLine();
System.out.println("Don't worry, everything will be ok, ok?");
String d= scanner10.nextLine();
}
if(age<18){System.out.println("How was school?");}
else if (age>=18){System.out.println("How was work?");}
if語句的條件以粗體顯示。 第一個(gè)和第二個(gè)相似,第三個(gè)和第四個(gè)相似。 我以為可以做到這一點(diǎn),但事實(shí)并非如此:
if (b.equals("good"),b.equals("it was good")) {
System.out.println("Thank goodness");
} ?else if (b.equals("bad"),(b.equals("it was bad"))) {
System.out.println("Why was it bad?");
String c = scanner3.nextLine();
System.out.println("Don't worry, everything will be ok, ok?");
String d= scanner10.nextLine();
}
有人可以為我更正嗎? 我真的很感激!
if (b.equals("good") || b.equals("it was good")) ||是OR運(yùn)算符
謝謝! 這真的很有幫助!
您可以使用logical operators組合您的boolean expressions。
&&是一個(gè)邏輯和(兩個(gè)條件都必須為true)
||是邏輯或(至少一個(gè)條件必須為true)
^是異或(恰好一個(gè)條件必須是true)
(==通過身份比較對(duì)象)
例如:
if (firstCondition && (secondCondition || thirdCondition)) {
...
}
還有按位運(yùn)算符:
&是按位的
|是按位或
^是異或
它們主要與bits and bytes一起使用時(shí)使用。但是還有另一個(gè)區(qū)別,讓我們?cè)俅慰匆幌逻@個(gè)表達(dá)式:
firstCondition && (secondCondition || thirdCondition)
如果使用邏輯運(yùn)算符,并且firstCondition求值為false,則Java將不會(huì)計(jì)算第二個(gè)或第三個(gè)條件,因?yàn)橐阎麄€(gè)邏輯表達(dá)式的結(jié)果為false。但是,如果使用按位運(yùn)算符,則Java不會(huì)停止并繼續(xù)計(jì)算所有內(nèi)容:
firstCondition & (secondCondition | thirdCondition)
非常感謝! 這真的很有幫助!
因此在我的代碼中,如果我想同時(shí)使用這兩個(gè)條件,這就是我要做的事情:if((b.equals(" good"))||(b.equals(" it is Good"))) {System.out.println(" Thank goodness"); }
對(duì),就是這樣。 只需將語句與邏輯運(yùn)算符組合即可。
以下是日常語言及其編程類似物中使用的一些常見符號(hào):
","通常是指日常語言中的"和"。因此,這將轉(zhuǎn)換為Java中的AND運(yùn)算符&&。
" /"通常是指日常語言中的"或"。因此,這將轉(zhuǎn)換為Java中的OR運(yùn)算符||。
" XOR"僅是" x || y,但不能同時(shí)為真"。這在Java中轉(zhuǎn)換為x ^ y。
在您的代碼中,您可能打算使用"或"(您剛才使用了不正確的"不正確的解決方案":p),因此應(yīng)使用" ||"在第二個(gè)代碼塊中,使其與第一個(gè)代碼塊相同。
希望這對(duì)您有所幫助:)
謝謝! 這真的很有幫助!
有一種更簡單的方法。
if (b.contains("good")) {
...
}
else if (b.contains("bad")) {
...
}
這可能是您目前所需的答案。但是,正如其他幾個(gè)人指出的那樣,您需要OR運(yùn)算符" ||"。沒有其他人提到過兩點(diǎn):
1)如果(b.equals(" good")|| b.equals("它很好"))
if(" good" .equals(b)||"這很好" .equals(b))
這樣做的好處是邏輯完全相同,但是您永遠(yuǎn)不會(huì)獲得NPE,并且邏輯將按您期望的那樣工作。
2)Java使用"短路"測試。這是非常規(guī)的,這意味著即使確定了所有條件,Java也會(huì)在確定結(jié)果后停止測試條件。例如。:
if((b!= null)&&(b.equals(" good")|| b.equals(" it was good"))))
由于短路,您不會(huì)在上面的代碼中獲得NPE。如果" b"為空,則Java可以確保無論下一個(gè)條件的結(jié)果如何,答案始終為假。因此,它不會(huì)打擾那些測試。
同樣,這可能比您準(zhǔn)備在現(xiàn)階段處理的信息更多,但是在不久的將來的某個(gè)時(shí)候,您的測試的NPE會(huì)刺痛您。 :)
謝謝! 這真的很有幫助!
如果使用雙杠(||),則可以有兩個(gè)條件。他們的意思是"或"。這意味著只有一個(gè)條件必須為真才能執(zhí)行循環(huán)。
像這樣:
if(condition || otherCondition || anotherCondition) {
//code here
如果您希望所有條件都為真,請(qǐng)使用&&。這意味著為了執(zhí)行循環(huán),所有條件必須為真。如果其中任何一個(gè)為假,則循環(huán)將不會(huì)執(zhí)行。
像這樣:
if(condition && otherCondition && anotherCondition) {
//code here
如果您希望條件對(duì)成對(duì),也可以對(duì)條件進(jìn)行分組。就像是:
if(condition || (otherCondition && anotherCondition)) {
//code here
謝謝! 這真的很有幫助!
您正在尋找" OR"運(yùn)算符-通常用雙管道表示:||
if (b.equals("good") || b.equals("it was good")) {
System.out.println("Thank goodness");
} ?else if (b.equals("bad") || b.equals("it was bad")) {
System.out.println("Why was it bad?");
String c = scanner3.nextLine();
System.out.println("Don't worry, everything will be ok, ok?");
String d= scanner10.nextLine();
}
謝謝! 這真的很有幫助!
總結(jié)
以上是生活随笔為你收集整理的java if and_关于java:if语句中可以有两个条件吗的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mongodb java 学习_《 mo
- 下一篇: java 套娃_【leetcode编程题