我需要将变量参数添加到已经包含大量参数的开关案例的语法。上下文提供了上下文。
我正在使用switch case将字符串答案更改为整数返回。而不是让用户回答
这个。
2.别的。
我希望答案看起来像
(Y / N)
我之前用这样的代码完成了它:
static public int getYN() {
String answer = "";
switch(keyboard.nextLine().substring(0, 1).toLowerCase()) {
case "y":
return 1;
case "n":
return 0;
default:
return 2;
}
}
然后使用声明:
int getAnswer = getYN();
System.out.println();
if (getAnswer == 1) {
System.out.println("Stuff.");
test = 1;
}
else {
System.out.println("Other stuff.");
System.out.println();
}
但是,我不知道将String answer变量放在switch case中的位置。通常,如果您没有使用许多其他参数,那么它只会是
switch(answer) {
}
答案 0 :(得分:0)
检查内联,忘记使用专门的方法进行此检查。
char getAnswer = keyboard.next().charAt(0);
System.out.println();
if (getAnswer == 'y' || getAnswer == 'Y')
{
System.out.println("Stuff.");
test = 1;
}
else if( getAnswer == 'n' || getAnswer == 'N')
{
System.out.println("Other stuff.");
System.out.println();
}
如果你必须使用开关:
char getAnswer = keyboard.next().charAt(0);
switch(getAnswer)
{
case 'y':
System.out.println("Stuff.");
test = 1;
break;
case 'n':
System.out.println("Other stuff.");
System.out.println();
break;
}
答案 1 :(得分:0)
你可以在同一行中实现同样的目标:
public static int getYN(String s) {
return ("yn YN".indrxOf(s) + 3) % 3;
}
处理大写和小写两种情况,并且通过添加3(当找不到目标时indexOf()
返回-1
)来处理“未找到”默认值2,并且模数意识需要小心处理大写字母索引。
即使我自己这样说,也相当整洁。