Java 如何在不询问他想输入的输入数的情况下从键盘获取输入

Java 如何在不询问他想输入的输入数的情况下从键盘获取输入,java,input,keyboard,Java,Input,Keyboard,我已经尝试编写代码,其中代码在读取数字42后停止处理输入。输入的所有数字都是整数。在这段代码中,用户被要求给出他想要输入的数字。但是,如果不询问用户想要输入多少数字,我就不知道如何获取输入 import java.util.Scanner; public class antarahac { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int

我已经尝试编写代码,其中代码在读取数字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;
            }
        }
    }

}
import java.util.Scanner;
安塔拉哈克公务舱{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int-pattern[]=新int[1];
模式[0]=42;
int max,ls,lp=1;
System.out.println(“输入要输入的值的数量”);
ls=sc.nextInt();
整数输入[]=新整数[ls];
对于(int i=0;i
您只需使用循环,直到获得所需的值。当用户输入
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
四十八

更多信息 现在,如果要存储这些,如果使用数组,则需要创建一个具有足够空间(风险)的数组,如:
newint[1000]
或者您可以使用
列表
来使用动态大小的集合。如果您不知道,只需知道要创建
列表
,您只需要:

List<Integer> input = new ArrayList<>(); //int[] input = new int[####];
和读取值(获取):

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

而(!input.equals(“endInput”))就是一个例子。if(flag==true)可以重写为if(flag)(不太可能包含类型错误
int-input;while((input=sc.nextInt())!=42)
,但是您需要在不知道数组大小的情况下声明数组,或者学习如何使用
列表。PS:为什么对
模式使用1个单元格的数组?
input.add(i); //input[index] = i;
input.get(index);  // input[index]
ls = input.size();