如何通过布尔值传递字符串? yes 表示 true,no 表示 false?
How to pass Strings through Booleans? yes for true, no for false?
我正在尝试编写我的第一个使用布尔值和 if/else 语句的程序。它会带用户回答各种问题,并最终告诉他们应该在家还是在餐厅用餐。这是通过用户在其中输入“true”或“false”的 Scanner 对象完成的。它似乎运行良好,但我的问题是,如何允许用户为“true”输入“yes”,为“false”输入“no”,而不是让他们输入这些词?我的作业指定他们应该使用 yes/no.
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.");
}
}
尝试将其中一项设置为“是”或“否”...
System.out.println("Did you get paid this week?");
boolean paid = scan.nextBoolean();
if (!paid == yes){
System.out.println("Eat at home.");
return;
}
我收到一条错误消息,告诉我找不到符号变量“yes”。作为回应,我试图创建一个局部变量“yes”,但这没有用。我如何告诉我的程序“是”的意思是“真”?谢谢!
如果要输入字符串,则不要使用nextBoolean
,可以使用nextLine
或next
当你有你的字符串时,你可以测试它是否等于 yes
if (paid.equalsIgnoreCase ("YES"))
编辑
由于您经常使用此模式,我建议您将此代码包装到它自己的方法中
我正在尝试编写我的第一个使用布尔值和 if/else 语句的程序。它会带用户回答各种问题,并最终告诉他们应该在家还是在餐厅用餐。这是通过用户在其中输入“true”或“false”的 Scanner 对象完成的。它似乎运行良好,但我的问题是,如何允许用户为“true”输入“yes”,为“false”输入“no”,而不是让他们输入这些词?我的作业指定他们应该使用 yes/no.
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.");
}
}
尝试将其中一项设置为“是”或“否”...
System.out.println("Did you get paid this week?");
boolean paid = scan.nextBoolean();
if (!paid == yes){
System.out.println("Eat at home.");
return;
}
我收到一条错误消息,告诉我找不到符号变量“yes”。作为回应,我试图创建一个局部变量“yes”,但这没有用。我如何告诉我的程序“是”的意思是“真”?谢谢!
如果要输入字符串,则不要使用nextBoolean
,可以使用nextLine
或next
当你有你的字符串时,你可以测试它是否等于 yes
if (paid.equalsIgnoreCase ("YES"))
编辑
由于您经常使用此模式,我建议您将此代码包装到它自己的方法中