如何解决如何反复提问直到我得到正确答案作为角色
我应该问“选择”,如果他输入其他内容,用户应该输入 a b 或 c,它应该重复这个问题。我什至不明白我是怎么做到的,然后我又遇到了另一个问题:稍后我应该打印出所选的咖啡种类,但是因为“eingabe”已经过一段时间了,或者如果我想打印时无法识别它稍后使用它。我该如何解决这个问题?还是我应该使用另一个循环?字符甚至是在这里使用的正确类型吗? 提前谢谢。
while(eingabe != 'a' || eingabe != 'b' || eingabe ||'c') {
Out.println("Bitte auswaehlen: ");
char eingabe = in.readChar();
}
Out.print("Gewaehlt ");
if (eingabe == 'a') Out.print("CAPPUCCINO");
if (eingabe == 'b') Out.print("MOKKA");
if (eingabe == 'c') Out.print("VERLAENGERTER");
Out.print(" !");
}
解决方法
如前所述,您应该在循环之外声明它。并且您在检查 c 时在循环中输入错误:
char eingabe = '';
while(eingabe != 'a' && eingabe != 'b' && eingabe != 'c') {
Out.println("Bitte auswaehlen: ");
eingabe = in.readChar();
}
Out.print("Gewaehlt ");
if (eingabe == 'a') Out.print("CAPPUCCINO");
if (eingabe == 'b') Out.print("MOKKA");
if (eingabe == 'c') Out.print("VERLAENGERTER");
Out.print(" !");
,
您的 eingabe
变量应该在循环之外定义,以便您的其余代码可以访问它。请注意不要使用条件中检查的值来初始化它,或者甚至更好地使用 do-while 代替。
我将您的代码切换为使用常规 System.in 和 System.out,因为我不知道那些 in 和 Out 是什么。最后但并非最不重要的是,您的输出条件是错误的,您应该再次询问该值是否与所有预期值不同,而不是与 any 不同(始终为真):
char eingabe;
do {
System.out.println("Bitte auswaehlen: ");
eingabe = (char) System.in.read();
} while (eingabe != 'a' && eingabe != 'b' && eingabe != 'c');
System.out.print("Gewaehlt ");
if (eingabe == 'a')
System.out.print("CAPPUCCINO");
if (eingabe == 'b')
System.out.print("MOKKA");
if (eingabe == 'c')
System.out.print("VERLAENGERTER");
System.out.print(" !");
,
我认为您的表达式 eingabe != 'a' || eingabe != 'b' || eingabe ||'c'
有问题。也许你的意思是eingabe != 'a' || eingabe != 'b' || eingabe != 'c'
。我认为为了在用户输入其他内容时继续循环,您需要使用 &&
而不是 ||
。 do while 循环非常适合您的用例:
char eingabe;
Scanner in = new Scanner(System.in);
do {
System.out.println("Bitte auswaehlen: ");
eingabe = in.next().toCharArray()[0];
} while (eingabe != 'a' && eingabe != 'b' && eingabe != 'c');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。