使用 || 在 while 循环中它需要太多的输入值

大卫琼斯
public class MetricConversion {
public static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
    String masses = "null";
    String volumes = "null";
    String temps = "null";
    String lengths = "null";
    int answer1 = 0;

    String[] options = {"Mass = 1","Temperature = 2","Length = 3","Volume = 4"};
    System.out.println("What would you like to convert?");
    for(int i = 0;i<options.length;i++)
        System.out.println(options[i]);

    while(!input.hasNextInt() || input.nextInt() > options.length)
    {
        String garbage = input.nextLine();
        System.out.println("That input is not valid, try again");
    }
    answer1 = input.nextInt();  
    input.nextLine();

我遇到的问题是

    while(!input.hasNextInt() || input.nextInt() > options.length)

正在采用 2 个有效输入而不是 1 个有效输入,以便使

    answer1 = input.nextInt();

例如,当输入无效输入时,它会正确打印我的错误消息,但在输入有效输入时,我必须输入两次才能打破循环。但是,如果我使用没有 || 的 while 循环 它只需要一个值,就像它应该的那样。

什莫塞尔

您正在使用该值而不将其分配给变量。您可以在循环条件中分配它,如下所示:

while(!input.hasNextInt() || (answer1 = input.nextInt()) > options.length)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JDBC在while循环中存储值

来自分类Dev

在while循环中每行之后需要输入

来自分类Dev

在while循环中使用+ =,但需要排除最高数字

来自分类Dev

在while循环中正确使用scanf来验证输入

来自分类Dev

在while循环中使用scanf()检查输入类型

来自分类Dev

在while循环中使用SSH会丢失属性值

来自分类Dev

使用JDBC将值存储在while循环中

来自分类Dev

使用 while 循环验证输入

来自分类Dev

在while循环中使用Scala延续

来自分类Dev

在While循环中如何使用单个结果?

来自分类Dev

在while循环中使用if语句

来自分类Dev

在while循环中使用的BufferedReader readLine

来自分类Dev

在while循环中使用枚举函数

来自分类Dev

使用if语句时卡在while循环中

来自分类Dev

在while循环中使用strcpy,C

来自分类Dev

在while循环中在括号内使用括号?

来自分类Dev

使用VueJS在while循环中更新数据

来自分类Dev

如何使用开关从while循环中中断?

来自分类Dev

在php While循环中使用IF

来自分类Dev

在while循环中使用条件

来自分类Dev

在While循环中如何使用字典?

来自分类Dev

在while循环中使用foreach

来自分类Dev

在while循环中使用Try / Catch

来自分类Dev

在 while 循环中使用 time()

来自分类Dev

为什么需要在 Java 的 while 循环中使用“break”和“continue”语句?

来自分类Dev

使用 InputBox 在循环中输入值

来自分类Dev

用户名输入和匹配使用python-(卡在while循环中)

来自分类Dev

在 While 循环中使用时扫描器输入不起作用

来自分类Dev

使用readLine()的while循环