java if and_关于java:if语句中可以有两个条件吗
我是Java編碼的初學者,因此我會定期瀏覽以我的基本知識查找初學者項目。 最近,我正在創建一個聊天程序,用戶可以在其中與我的計算機聊天。 這是代碼的一部分,因為我不需要顯示整個代碼:
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語句的條件以粗體顯示。 第一個和第二個相似,第三個和第四個相似。 我以為可以做到這一點,但事實并非如此:
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運算符
謝謝! 這真的很有幫助!
您可以使用logical operators組合您的boolean expressions。
&&是一個邏輯和(兩個條件都必須為true)
||是邏輯或(至少一個條件必須為true)
^是異或(恰好一個條件必須是true)
(==通過身份比較對象)
例如:
if (firstCondition && (secondCondition || thirdCondition)) {
...
}
還有按位運算符:
&是按位的
|是按位或
^是異或
它們主要與bits and bytes一起使用時使用。但是還有另一個區別,讓我們再次看一下這個表達式:
firstCondition && (secondCondition || thirdCondition)
如果使用邏輯運算符,并且firstCondition求值為false,則Java將不會計算第二個或第三個條件,因為已知整個邏輯表達式的結果為false。但是,如果使用按位運算符,則Java不會停止并繼續計算所有內容:
firstCondition & (secondCondition | thirdCondition)
非常感謝! 這真的很有幫助!
因此在我的代碼中,如果我想同時使用這兩個條件,這就是我要做的事情:if((b.equals(" good"))||(b.equals(" it is Good"))) {System.out.println(" Thank goodness"); }
對,就是這樣。 只需將語句與邏輯運算符組合即可。
以下是日常語言及其編程類似物中使用的一些常見符號:
","通常是指日常語言中的"和"。因此,這將轉換為Java中的AND運算符&&。
" /"通常是指日常語言中的"或"。因此,這將轉換為Java中的OR運算符||。
" XOR"僅是" x || y,但不能同時為真"。這在Java中轉換為x ^ y。
在您的代碼中,您可能打算使用"或"(您剛才使用了不正確的"不正確的解決方案":p),因此應使用" ||"在第二個代碼塊中,使其與第一個代碼塊相同。
希望這對您有所幫助:)
謝謝! 這真的很有幫助!
有一種更簡單的方法。
if (b.contains("good")) {
...
}
else if (b.contains("bad")) {
...
}
這可能是您目前所需的答案。但是,正如其他幾個人指出的那樣,您需要OR運算符" ||"。沒有其他人提到過兩點:
1)如果(b.equals(" good")|| b.equals("它很好"))
if(" good" .equals(b)||"這很好" .equals(b))
這樣做的好處是邏輯完全相同,但是您永遠不會獲得NPE,并且邏輯將按您期望的那樣工作。
2)Java使用"短路"測試。這是非常規的,這意味著即使確定了所有條件,Java也會在確定結果后停止測試條件。例如。:
if((b!= null)&&(b.equals(" good")|| b.equals(" it was good"))))
由于短路,您不會在上面的代碼中獲得NPE。如果" b"為空,則Java可以確保無論下一個條件的結果如何,答案始終為假。因此,它不會打擾那些測試。
同樣,這可能比您準備在現階段處理的信息更多,但是在不久的將來的某個時候,您的測試的NPE會刺痛您。 :)
謝謝! 這真的很有幫助!
如果使用雙杠(||),則可以有兩個條件。他們的意思是"或"。這意味著只有一個條件必須為真才能執行循環。
像這樣:
if(condition || otherCondition || anotherCondition) {
//code here
如果您希望所有條件都為真,請使用&&。這意味著為了執行循環,所有條件必須為真。如果其中任何一個為假,則循環將不會執行。
像這樣:
if(condition && otherCondition && anotherCondition) {
//code here
如果您希望條件對成對,也可以對條件進行分組。就像是:
if(condition || (otherCondition && anotherCondition)) {
//code here
謝謝! 這真的很有幫助!
您正在尋找" OR"運算符-通常用雙管道表示:||
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();
}
謝謝! 這真的很有幫助!
總結
以上是生活随笔為你收集整理的java if and_关于java:if语句中可以有两个条件吗的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mongodb java 学习_《 mo
- 下一篇: java 套娃_【leetcode编程题