在Java中使用"OR"运算符

Joh*_*ohn 1 java string equals while-loop logical-operators

这是代码.

do {
    System.out.println("Enter Product Code: ");
    medicine = machine1.nextInt();

    if (medicine==1) {
        machine1.buy1();
        machine1.addproduct(); 
    } 
    if (medicine==2); {
        machine1.buy2();
        machine1.addproduct();
    } 
} while((String answer=='y') || (String answer=='Y'));
Run Code Online (Sandbox Code Playgroud)

它给出了这个错误:

enter code    drugstore1.java:96: error: ')' expected
            }while((String answer=='y'))||((String answer=='Y'));
                                 ^    drugstore1.java:96: error: ';' expected
            }while((String answer=='y'))||((String answer=='Y'));
                                       ^  drugstore1.java:96: error: ';' expected
            }while((String answer=='y'))||((String answer=='Y'));
                                                          ^
Run Code Online (Sandbox Code Playgroud)

在修复其他错误之后它就搞定了.我想我正在使用它..但是有什么问题?

And*_*lko 5

我建议你写

while(answer.equalsIgnoreCase("y"));
Run Code Online (Sandbox Code Playgroud)

intead of

while((String answer=='y'))||((String answer=='Y'));
Run Code Online (Sandbox Code Playgroud)

您无法在逻辑条件中定义新变量.

1. String answer [X] -> answer [V]
2. answer=='y' [X] -> answer.equals("y") [V]
3. answer.equals("y") || answer.equals("Y") [V] -> answer.equalsIgnoreCase("y") [V]

4. if(medicine==2); [X] -> if (medicine == 2) [V]
Run Code Online (Sandbox Code Playgroud)