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



我正在尝试编写第一个使用布尔值和if/else语句的程序。它引导用户通过各种问题,最终告诉他们应该在家吃饭还是在餐馆吃饭。这是通过扫描器对象完成的;真";或";false";。它似乎工作得很好,但我的问题是,我如何允许用户输入";是";对于";真";以及";否";对于";"假";,而不是让他们打字?我的作业指定他们应该使用是/否。

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.");
}  
}

在试图将其中一个设置为"0"时;是";或";不;。。。

System.out.println("Did you get paid this week?");
boolean paid = scan.nextBoolean();          
if (!paid == yes){
System.out.println("Eat at home.");
return;

}

我得到一个错误,告诉我符号变量";是";找不到。作为回应,我试图创建一个局部变量";是";但这并没有奏效。我如何告诉我的程序";是";是指";真的";?谢谢

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

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

if (paid.equalsIgnoreCase ("YES"))

编辑

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

最新更新