我的数组不会与我的do-while循环一起运行

时间:2014-12-29 02:43:06

标签: java

我刚刚学习了数组,想要构建一个简单的程序,我使用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而不会出错?该阵列将不会在这种情况下工作,所以我仍然坚持想办法在条件中包含多个数字

3 个答案:

答案 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)

intint[]

不同