首页 > 解决方案 > 如何在不使用零的情况下终止用户输入?

问题描述

基本上我正在尝试创建一个返回数组的方法,以便以后可以使用此列表,唯一的问题是我找不到除使用 0 之外的终止用户输入的方法。我试图接受用户使用字符串输入,然后将其解析为 int,但仅在使用非数字字符时才会导致错误。

public static double[] input()
{
    double[] arr = new double[100];
    //int count = 1;

    for(int i = 0; i < arr.length; i++)
    {
        System.out.print("Insert a number or Zero to stop: ");
        double input = scan.nextDouble();
        arr[i] = input;

        if(input == 0)
        {
            break;
        }
        count++;
    }
    return arr;
}

标签: javaarrays

解决方案


我认为,for(int i = 0; i < arr.length; i++)您可以简单地询问用户他/她希望输入多少位数,然后将该值传递给 for 循环以执行 lie ,而不是条件for(int i = 0; i < length; i++),其中 length 是用户所需的数组大小。

如果您不想询问用户,请执行此操作,将数字作为单个字符而不是字符串接受,然后在将其解析为 int 之前检查输入的字符是否为转义序列(\n 或 \r)arr[index]='\n' or'\r',然后您可以终止输入过程。

注意:此过程仅适用于整数输入,如果用户输入一个它接受的字符,只需确保输入的字符是一个数字。

我建议你把 print 语句放在 for 循环之外,因为只要 for 循环运行,它就会重复,一次又一次地显示这些指令是不好的。


推荐阅读