如何从键盘获取输入而不询问他想要输入的输入数量

时间:2018-05-08 11:04:41

标签: java input keyboard

我尝试编码,其中代码在读取数字42后停止处理输入。输入的所有数字都是整数。在此代码中,用户被要求给出他想要给出的输入数量。但我是没有询问用户他想输入多少号码就没有获得如何输入的信息。

import java.util.Scanner;

public class antarahac {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int pattern[] = new int[1];
        pattern[0] = 42;
        int max, ls, lp = 1;
        System.out.println("enter the no. of values you want to enter");
        ls = sc.nextInt();
        int input[] = new int[ls];
        for (int i = 0; i < ls; i++) {
            input[i] = sc.nextInt();

        }
        max = ls - lp - 1;
        boolean flag;
        for (int i = 0; i < max; i++) {
            flag = true;
            for (int j = 0; j < lp && flag == true; j++) {
                if (pattern[j] != input[j + i]) {
                    flag = false;
                    System.out.println("" + input[i]);

                }
            }
            if (flag == true) {

                break;
            }
        }
    }

}

1 个答案:

答案 0 :(得分:0)

您可以简单地使用循环,直到获得所需的值。您提到在用户输入42时停止:

int tmp;
while((tmp = sc.nextInt()) != 42){
    // do something
}

这将读取输入,直到输入42

Scanner sc = new Scanner(System.in);
int tmp;
while((tmp = sc.nextInt()) != 42){
    System.out.println(tmp);
}
sc.close();

输入:

  

1,2,3,5,48,42

输出:

  

1
  2
  3
  5
  48

更多信息

现在,如果要存储它们,如果使用数组,则需要创建一个具有足够空格(有风险)的数组,如:new int[1000];或者您可以使用List来使用动态大小的集合。如果您不了解它,只需知道要创建List,您只需要:

List<Integer> input = new ArrayList<>(); //int[] input = new int[####];

然后在最后添加一个值,你可以:

input.add(i); //input[index] = i;

并阅读值(get):

input.get(index);  // input[index]

然后,我注意到您使用ls,之前的数组大小,您可以使用size()方法知道列表中添加了多少个值:

ls = input.size();