gpt4 book ai didi

java - do-while 循环的问题

转载 作者:行者123 更新时间:2023-11-30 08:26:45 25 4
gpt4 key购买 nike

我只是 Java 编码的初学者,我只是在写一个简单的程序:给用户一个菜单,如果用户输入正确的数字,他必须输入 1-4 之间的数字,如果输入错误的数字,则完成所需的任务,用户再次要求输入。下面是我的程序

class menu {
public static void main(String [] args) throws java.io.IOException {
int choice;
do
{
System.out.println("HELP MENU: ");
System.out.println("IF STATEMENT: 1 ");
System.out.println("WHILE: 2 ");
System.out.println("DO WHILE: 3 ");
System.out.println("SWITCH: 4 ");
choice = System.in.read();
System.out.println(choice);
}

while( choice < 1 || choice > 4);
System.out.println("\n");
System.out.println(choice);

switch (choice)
{
case 1:
System.out.println("if statement is selected");
break;
case 2:
System.out.println("while statement is selected");
break;

case 3:
System.out.println("do while statement is selected");
break;

case 4:
System.out.println("switch statement is selected");
break;
}
}
}

输出:+++++++

E:\study\javacode>java menu 
HELP MENU:
IF STATEMENT: 1
WHILE: 2
DO WHILE: 3
SWITCH: 4
4
52
HELP MENU:
IF STATEMENT: 1
WHILE: 2
DO WHILE: 3
SWITCH: 4
13
HELP MENU:
IF STATEMENT: 1
WHILE: 2
DO WHILE: 3
SWITCH: 4
10
HELP MENU:
IF STATEMENT: 1
WHILE: 2
DO WHILE: 3
SWITCH: 4

无论用户通过键盘输入什么,代码都在 do-while 循环中不断迭代。我通过打印输入值确定了原因,我发现输入值被代码错误了。请帮助解决这个

最佳答案

要读取数字或 String,我建议您使用 Scanner 对象。在 main() 的开头创建并实例化它:

Scanner in = new Scanner(System.in);

并在do-while中调用nextInt()方法:

do {
System.out.println("HELP MENU: ");
System.out.println("IF STATEMENT: 1 ");
System.out.println("WHILE: 2 ");
System.out.println("DO WHILE: 3 ");
System.out.println("SWITCH: 4 ");
choice = in.nextInt();
System.out.println(choice);
} while (choice < 1 || choice > 4);

注意事项:

  • System.in.read()实际上是返回您输入的字符的 int 值。例如,如果您输入 1,该方法将返回 49,它等于 (int)'1'
  • 正如我之前提到的,您可以使用 Scanner 读取 String,方法是 nextLine()

编辑:

只是看看你可以使用System.in.read() (您必须阅读文档以了解它的作用)读取一个整数,试试这个(在一个单独的文件中,这样您就不会不小心修改您的代码):

int i = System.in.read();
System.out.println(Integer.parseInt(Character.toString(((char) i))));

关于java - do-while 循环的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21287493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com