Java 在if语句中可以有两个条件吗

Java 在if语句中可以有两个条件吗,java,if-statement,conditional-statements,Java,If Statement,Conditional Statements,我是一个编码初学者。我最近正在与创建一个聊天程序,用户可以在其中与我的计算机聊天。以下是代码的一部分: 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.n

我是一个编码初学者。我最近正在与创建一个聊天程序,用户可以在其中与我的计算机聊天。以下是代码的一部分:

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"))** {                //1
    System.out.println("Thank goodness");
} else **if (b.equals("it was good"))** {  //2
    System.out.println("Thank goodness");
} else **if (b.equals("bad"))** {          //3
    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"))**{    //4
    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?");}

有人能帮我纠正一下吗?

您正在寻找OR操作符-它通常由一个双管道表示:||


如果使用双栏| |,可以有两个条件。他们的意思是或。这意味着只有一个条件必须为真才能执行循环

大概是这样的:

if(condition || otherCondition || anotherCondition) {
    //code here
if(condition && otherCondition && anotherCondition) {
    //code here
如果希望所有条件都为真,请使用&&。这意味着要执行循环,所有条件都必须为true。如果其中任何一个为false,则不会执行循环

大概是这样的:

if(condition || otherCondition || anotherCondition) {
    //code here
if(condition && otherCondition && anotherCondition) {
    //code here
如果希望某些条件对为真,还可以对条件进行分组。比如:

if(condition || (otherCondition && anotherCondition)) {
    //code here
可以使用逻辑运算符组合布尔表达式

&&是符合逻辑的,并且两个条件都必须为真 ||是逻辑条件还是至少有一个条件需要为真 ^异或是否正好是一个条件必须为真 ==按标识比较对象 例如:

if (firstCondition && (secondCondition || thirdCondition)) {
    ...
}
还有按位运算符:

&是一个按位和 |是按位还是按位 ^是一个异或 它们主要在使用位和字节操作时使用。然而,还有另一个区别,让我们再次看看这个表达式:

firstCondition && (secondCondition || thirdCondition)
如果您使用逻辑运算符,并且firstCondition的计算结果为false,那么Java将不会计算第二个或第三个条件,因为整个逻辑表达式的结果已经为false。但是,如果使用位运算符,Java将不会停止并继续计算所有内容:

firstCondition & (secondCondition | thirdCondition)

以下是日常语言中使用的一些常见符号及其编程类似物:

,通常指日常语言中的。因此,这将转换为Java中的AND运算符&&。 /通常指日常用语或日常用语。因此,这将转换为Java中的OR运算符| |。 XOR只是x | | y,但两者不能同时为真。这在Java中转换为x^y

在代码中,您可能打算使用或只是使用了不正确的解决方案:p,因此您应该在第二个代码块中使用| |,使其与第一个代码块相同


希望这能有所帮助:

这可能比你现在需要的答案更多。但是,正如其他一些人已经指出的那样,您需要OR运算符| |。有几点其他人都没有提到:


如果b.equalsgood | | b.equalsgood有一个更简单的方法

if (b.contains("good")) {
  ...
}
else if (b.contains("bad")) {
  ...
}

如果b.equalsgood | | | | b.equalsgood | | | |是OR运算符谢谢你!这真的很有帮助!非常感谢你!这真的很有帮助!所以在我的代码中,如果我想在我的条件下使用这两种方法,我必须这样做:如果b.equalsgood | | b.equalsit是Good{System.out.println感谢上帝;}是的。只需将语句与逻辑运算符结合起来。谢谢!这真的很有帮助!非常感谢。这真的很有帮助!非常感谢。这真的很有帮助!非常感谢。这真的很有帮助!