当前位置: 首页 > 知识库问答 >
问题:

Java do-while循环简单问题

朱宜
2023-03-14

我已经有几年没有编写代码了,一直在编写简单的Java程序来重新熟悉基本原理。然而,我很难让我的do-while循环按照我想要的方式运行。我想我并不完全理解do-while循环是如何工作的,但我想要的是从System.in中收集作为int的用户输入,并在他们输入其他数据表单时继续请求有效的int输入。我所拥有的是:

do {
    System.out.print("Input: ");

    userOption = userInput.nextInt();

} while (!userInput.hasNextInt());

System.out.println("You chose to: " + menuItems.get((userOption - 1)));

这不起作用有两个原因。首先,如果我输入一个非int值,它会立即崩溃,引发输入不匹配异常。其次,如果我确实输入了一个有效的int值,我总是要输入两次。也就是说,控制台将要求输入“input:”,我将输入“2”,控制台将前进到下一行并等待另一个输入(但不打印任何内容),然后当我输入第二个int时,它将输出“You select to[...]”。

我已经尝试了十几种不同的变体,这些变体越来越复杂,而循环在do-while和if-else中,但我肯定我已经把事情复杂化了,错过了一个简单的概念。任何帮助都是非常感谢的!

共有1个答案

鲜于喜
2023-03-14

下面是一个独立的例子:

import java.util.*;

public class Foo {
  public static void main(String args[]){
        int userOption;
        Scanner userInput = new Scanner(System.in);

        System.out.print("Input: "); 
        while(!userInput.hasNextInt()){
            userInput.next();
            System.out.print("Error: Please enter an integer\nInput: "); 
        } 
        userOption = userInput.nextInt();

        System.out.println("You chose to: " +userOption);
    }
}

我们第一次要求输入,当我们找不到整数时,我们将显示一条错误消息,并丢弃用户输入的内容(userinput.next(),请参见:https://stackoverflow.com/a/15973109/1063730)。

 类似资料:
  • 这段代码是为一个基本的杂货计算器的按钮。当我按下按钮时,一个输入对话框显示您在哪里输入您的商品价格。我遇到的问题是,我不知道如何获得循环,使输入对话框在输入后弹出。 我希望它总是回来,除非用户选择ok与nothing或cancel,在这种情况下,循环应该中断并填充剩余的框。使用当前的代码,我必须每次手动按下按钮来恢复对话框。我一直在玩不同的while条件和if语句,但我似乎无法让它发挥作用。我是一

  • 本文向大家介绍python 循环while和for in简单实例,包括了python 循环while和for in简单实例的使用技巧和注意事项,需要的朋友参考一下 python 循环while和for in简单实例 以上这篇python 循环while和for in简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 只要给定条件为真,Perl编程语言中的while循环语句就会重复执行目标语句。 语法 (Syntax) Perl编程语言中while循环的语法是 - while(condition) { statement(s); } 这里的statement(s)可以是单个陈述或一个陈述块。 condition可以是任何表达。 当条件为真时,循环迭代。 当条件变为假时,程序控制将立即传递到循环之后的行。

  • 编写程序时,您可能会遇到需要反复执行操作的情况。 在这种情况下,您需要编写循环语句以减少行数。 JavaScript支持所有必要的循环,以减轻编程压力。 while循环 JavaScript中最基本的循环是while循环,将在本章中讨论。 while循环的目的是只要expression为真,就重复执行语句或代码块。 表达式变为false,循环终止。 流程图 while loop流程图如下 - 语法

  • 只要给定条件为真,Objective-C编程语言中的while循环语句就会重复执行目标语句。 语法 (Syntax) Objective-C编程语言中while循环的语法是 - while(condition) { statement(s); } 这里, statement(s)可以是单个语句或语句块。 condition可以是任何表达式,true是任何非零值。 当条件为真时,循环迭代。

  • While循环一次又一次地执行相同的代码,直到满足停止条件。 语法 (Syntax) 在R中创建while循环的基本语法是 - while (test_expression) { statement } 流程图 (Flow Diagram) 这里while循环的关键点是循环可能永远不会运行。 当测试条件并且结果为假时,将跳过循环体并且将执行while循环之后的第一个语句。 例子 (Exam