Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过布尔传递字符串?是的代表真,不是的代表假?_Java_If Statement_Boolean - Fatal编程技术网

Java 如何通过布尔传递字符串?是的代表真,不是的代表假?

Java 如何通过布尔传递字符串?是的代表真,不是的代表假?,java,if-statement,boolean,Java,If Statement,Boolean,我正在尝试编写我的第一个使用布尔和if/else语句的程序。它会让用户了解各种问题,并最终告诉他们应该在家里还是在餐馆吃饭。这是通过扫描器对象完成的,用户在其中输入“真”或“假”。它似乎工作得很好,但我的问题是,如何允许用户输入“是”表示“真”,输入“否”表示“假”,而不是让他们键入这些单词?我的作业指定他们应该使用是/否 import java.util.Scanner; public class HomeOrRestaurant { public static voi

我正在尝试编写我的第一个使用布尔和if/else语句的程序。它会让用户了解各种问题,并最终告诉他们应该在家里还是在餐馆吃饭。这是通过扫描器对象完成的,用户在其中输入“真”或“假”。它似乎工作得很好,但我的问题是,如何允许用户输入“是”表示“真”,输入“否”表示“假”,而不是让他们键入这些单词?我的作业指定他们应该使用是/否

import java.util.Scanner;

public class HomeOrRestaurant {  
    
    public static void main(String args[]){     
        Scanner scan = new Scanner(System.in);
        
        System.out.println("yes/no");
        
        System.out.println("Did you get paid this week?");
            boolean paid = scan.nextBoolean();          
            if (!paid == true){
            System.out.println("Eat at home.");
            return;
        
        }
        
        else 
        System.out.println("Did you buy groceries this week?");
            boolean boughtGroceries = scan.nextBoolean(); 
            if (boughtGroceries == true){
            System.out.println("Eat at home.");
            return;
        }
            
        else
        System.out.println("Do you have leftovers at home?");
            boolean leftovers = scan.nextBoolean(); 
            if (!leftovers == true){
            System.out.println("Eat at home.");
            return;
        }
            
        else
        System.out.println("Are there enough leftovers for a meal?");
            boolean enoughLeftovers = scan.nextBoolean(); 
            if (!enoughLeftovers == true){
            System.out.println("Eat at a restaurant.");
        }

        else
        System.out.println("Eat at home.");
    }  
}
在尝试将其中一个设置为“是”或“否”时


我收到一个错误,告诉我找不到符号变量“yes”。作为回应,我试图创建一个局部变量“yes”,但这不起作用。我如何告诉我的程序“是”意味着“正确”?谢谢

如果要输入字符串,则不要使用
nextBoolean
,可以使用
nextLine
next

当您有字符串时,您可以测试它是否等于
yes

if (paid.equalsIgnoreCase ("YES"))
编辑


由于您经常使用此模式,我建议您将此代码包装到自己的方法中

如果您想输入字符串,那么不要使用
nextBoolean
,也可以使用
nextLine
next

当您有字符串时,您可以测试它是否等于
yes

if (paid.equalsIgnoreCase ("YES"))
编辑


由于您经常使用此模式,我建议您将此代码包装到自己的方法中

或,
String input=scan.nextLine()然后
boolean=input.equalsIgnoreCase(“是”)
然后
if(paid)
if(!paid)
。没问题。我还觉得
if(!leftovers==true)
反模式值得关注。非常感谢!这正是我所需要的。@请注意,在实际的应用程序代码中,您可以使用以下内容,尽管在本任务中,您可能需要提供自己的实现。或者,
String input=scan.nextLine()然后
boolean=input.equalsIgnoreCase(“是”)
然后
if(paid)
if(!paid)
。没问题。我还觉得
if(!leftovers==true)
反模式值得关注。非常感谢!这正是我所需要的。@请注意,在实际的应用程序代码中,您可以使用以下内容,尽管在本作业中,您可能需要提供自己的实现;它们已经是布尔值了。只要说
如果(!paid)
。顺便说一句,不要比较布尔值;它们已经是布尔值了。只要说
如果(!paid)