我想在屏幕上显示一个有两个选项的问题(你结婚了吗?是/否)。用户必须按或“y”或“n”。之后,我想在屏幕上打印“已婚”或“未婚”。
我已经考虑过使用char来通过Scanner类(System.in)获取输入,并在将此char转换为布尔类型后,以显示带有if语句的两个选项。问题是我不知道如何将此char转换为布尔类型。是否有意义?是否有其他方式以不同的方式做这个例子?
非常感谢
答案 0 :(得分:2)
是的,您尝试做的方式并不是制作场景。您可以执行以下操作
Scanner sc=new Scanner(System.in);
String st=sc.nextLine();
if("y".equalsIgnoreCase(st)){
// married
}else if("n".equalsIgnoreCase(st)){
// not married
}
答案 1 :(得分:1)
我认为一个枚举将是一个很好的方式。将规则封装在对象中。
将用户对对象的响应绑定是一种视图责任。输入是下拉列表还是文本框?
婚姻状况很有意思。有比“是/否”更多的口味:单身,已婚,离婚,分居,卡戴珊等。
public class MaritalStatus {
MARRIED, NOT_MARRIED;
}
答案 2 :(得分:0)
很简单:
boolean isYes = (inputChar=='y' || inputChar=='Y');
您还可以将char转换为大写/小写,这样您就不需要||
。取决于你有多少测试,如果它是值得的。
在这种情况下,并不需要这些括号,因为||
的优先级高于赋值,但我个人觉得当括号中的“条件”括在括号中时更清楚。
答案 3 :(得分:0)
您不能简单地将char
投射到boolean
,但您可以将其与'y'
和'n'
进行比较
public static boolean charToBool(char c) {
// c = Character.toLowerCase(c);
switch (c) {
case 'y':
return true;
case 'n':
return false;
default:
throw new IllegalArgumentException("Must be either 'y' or 'n'.");
}
}
答案 4 :(得分:0)
您无法将字符转换为布尔值,因为程序应该如何知道' y'意味着真实,并且' n'意味着错误? 使用if语句
bool married = false;
if(input.equalsIgnoreCase("y"))
married = true;
我打赌一个简单的谷歌搜索可以帮助你完成你的作业。