我尝试编码,其中代码在读取数字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;
}
}
}
}
答案 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();