Java 为什么我的程序会忽略if-else语句?

Java 为什么我的程序会忽略if-else语句?,java,if-statement,Java,If Statement,我的程序应该只在键入“hi”和“hello”时输出“What is your name?”,但即使我键入一个数字或一个字符,它仍然会输出“What is your name?”。我很沮丧。有人能帮我解决这个问题吗?我认为这与有关!短语.equals语句 import java.util.Scanner; public class prog2 { public static void main(String[] args)throws Exception { String phr

我的程序应该只在键入“hi”和“hello”时输出“What is your name?”,但即使我键入一个数字或一个字符,它仍然会输出“What is your name?”。我很沮丧。有人能帮我解决这个问题吗?我认为这与
有关!短语.equals
语句

import java.util.Scanner;
public class prog2 {


public static void main(String[] args)throws Exception {



    String phrase;
    String name;
    char Letter;

    Scanner keyboard = new Scanner(System.in);
    System.out.print("Type a phrase: ");

    phrase = keyboard.nextLine();

    if(!phrase.equals("hi") || !phrase.equals("hello")){   
    System.out.print("What is your name?");               

    Scanner keyboard1 = new Scanner(System.in);

    name = keyboard1.nextLine();

    System.out.print("Your name is" +name);
    }else{

        Scanner keyboard2 = new Scanner(System.in);
        System.out.print("Type a Letter: ");

        Letter = (char) System.in.read();
        System.in.read();

        System.out.print("Your letter is "+ Letter);
    }


}

你的条件
!短语。等于(“嗨”)||!短语.equals(“hello”)
总是正确的


如果单词是
hi
,则它是
false或true
;如果单词是
hello
,则为
true或false
。否则为
true或true
。您没有描述预期的行为,因此我无法判断什么是正确的。

您的条件
!短语。等于(“嗨”)||!短语.equals(“hello”)
总是正确的


如果单词是
hi
,则它是
false或true
;如果单词是
hello
,则为
true或false
。否则为
true或true
。您没有描述预期的行为,因此我无法判断什么是正确的。

您的条件
!短语。等于(“嗨”)||!短语.equals(“hello”)
总是正确的


如果单词是
hi
,则它是
false或true
;如果单词是
hello
,则为
true或false
。否则为
true或true
。您没有描述预期的行为,因此我无法判断什么是正确的。

您的条件
!短语。等于(“嗨”)||!短语.equals(“hello”)
总是正确的


如果单词是
hi
,则它是
false或true
;如果单词是
hello
,则为
true或false
。否则为
true或true
。您没有描述预期的行为,因此我无法判断什么是正确的。

它没有做您想做的事情。检查法律

您可能想做:

if(!(短语.equals(“hi”)|短语.equals(“hello”))


它不像你所做的,因为如果(!a | | b)不像
如果(!(a | | b))
它没有做你想做的事。检查法律

您可能想做:

if(!(短语.equals(“hi”)|短语.equals(“hello”))


它不像你所做的,因为如果(!a | | b)不像
如果(!(a | | b))
它没有做你想做的事。检查法律

您可能想做:

if(!(短语.equals(“hi”)|短语.equals(“hello”))


它不像你所做的,因为如果(!a | | b)不像
如果(!(a | | b))
它没有做你想做的事。检查法律

您可能想做:

if(!(短语.equals(“hi”)|短语.equals(“hello”))

这与你所做的不一样,因为如果(!a | | | b)与如果(!(a | | b))不一样

试试:

if(phrase.equals("hi") || phrase.equals("hello")) {
//rest of your code
}
尝试:

尝试:

尝试:


我不懂java,但我认为
!短语.equals(“hi”)
表示短语不是“hi”。请尝试使用短语.equals(“hi”)。为什么您总是创建一个新的扫描仪?你可以重复使用它!天哪,为什么我没想到。。愚蠢的错误。这很有效,谢谢各位。。我会查一个可重复使用的扫描器,谢谢你提供的信息:)我不懂java,但我想
!短语.equals(“hi”)
表示短语不是“hi”。请尝试使用短语.equals(“hi”)。为什么您总是创建一个新的扫描仪?你可以重复使用它!天哪,为什么我没想到。。愚蠢的错误。这很有效,谢谢各位。。我会查一个可重复使用的扫描器,谢谢你提供的信息:)我不懂java,但我想
!短语.equals(“hi”)
表示短语不是“hi”。请尝试使用短语.equals(“hi”)。为什么您总是创建一个新的扫描仪?你可以重复使用它!天哪,为什么我没想到。。愚蠢的错误。这很有效,谢谢各位。。我会查一个可重复使用的扫描器,谢谢你提供的信息:)我不懂java,但我想
!短语.equals(“hi”)
表示短语不是“hi”。请尝试使用短语.equals(“hi”)。为什么您总是创建一个新的扫描仪?你可以重复使用它!天哪,为什么我没想到。。愚蠢的错误。这很有效,谢谢各位。。我将查找一个可重复使用的扫描仪,谢谢您提供的信息:)