我刚刚学习了数组,想要构建一个简单的程序,我使用do-while循环只接受数组中存在的输入数字,但是我遇到了一些问题
Scanner input = new Scanner(System.in);
int[] values;
values = new int[5];
values[0] = 16;
values[1] = 10;
values[2] = 11;
values[3] = 14;
values[4] = 17;
int value;
do {
System.out.println("Enter a number:");
value = input.nextInt();
}
while(value != values[]);
其余的将是“if”语句,其中包含一些根据数组中的哪些数字输出的文本。 “while”条件在我输入
的方式中出现错误编辑:因为在java中这是不可能的,我可以写!= 16,10,11,14,17而不会出错?该阵列将不会在这种情况下工作,所以我仍然坚持想办法在条件中包含多个数字
答案 0 :(得分:5)
do
循环的终止条件:
while(value != values[])
不是合法的Java。您无法将int
值与数组进行比较,也无法使用values[]
引用数组。我不知道你要完成什么,但是你需要在终止条件中输入特定的下标或者以其他方式修改它。
答案 1 :(得分:1)
正如您所看到的那样 只能写 而(值!= values []) ,但您可以搜索数组中的值或检查该值是否包含在List中:
---第一种方式
使用整数列表:
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
public class InArrayWithAsListContains {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int value=0;
List<Integer> values = new ArrayList<Integer>();
values.add(16);
values.add(10);
values.add(11);
values.add(14);
values.add(17);
do {
System.out.println("Enter a number:");
value = input.nextInt();
} while(!values.contains(value));
}
}
变体以使用以int []开头的List:
int[] arr = new int[] {16,10,11,14,17};
// int[] into List<Integer> conversion
for (int i : arr) values.add(i);
---第二种方式
只使用数组和Arrays.binarySearch(values,key)
import java.util.Scanner;
import java.util.Arrays;
public class Program {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int value=0;
int[] values = {16,10,11,14,17};
Arrays.sort(values);
do {
System.out.println("Enter a number:");
value = input.nextInt();
} while(Arrays.binarySearch(values, value) < 0);
}
}
答案 2 :(得分:0)
int
与int[]