如何将变量分配给开关循环内的数组

时间:2016-10-26 17:33:59

标签: java arrays

如何将变量1和0分配给数组,同时循环以更改要分配给该数组中下一个位置的变量?

int number[] = new int[10];
for(int i=0; i<10; i++)
{
    Scanner attendance = new Scanner(System.in);
    int inp = attendance.nextInt();
    int y = inp;
    switch (inp)
    {
    case 1:
        number[y] = 1;
        y--;
        break;
    case 0:
        number[y] = 0;
        y--;
        break;
    }

2 个答案:

答案 0 :(得分:0)

当前设置的方式除非用户知道只使用0或1,否则由于设置开关的方式而导致错误,请确保您有默认情况,因为它将获得所请求的所有值的。

另一个问题可能是有人说y为23。你将得到一个ArrayOutOfBounds错误。这是因为y是插入1或0的位置。

如果你希望它转到数组中的下一个位置,请执行David Wallace所说的并为该数组放置一个专用的新变量,以便在for循环中它将是

for(int i = 0; i<10; i++;) {

然后让数字数组通过标记像

这样的位置来改变它的位置
numbers[i] = x;

答案 1 :(得分:0)

以下是您可以适应的示例:

import java.util.Arrays;
import java.util.Scanner;

public class StackOverflow40268692 {

  public static void main(String... args) {
    final int number[] = new int[10];
    System.out.println("Please enter ten attendance numbers. One and zero are valid entries.");
    final Scanner attendance = new Scanner(System.in);
    for (int i = 0; i < 10; i++) {
      System.out.println("Please enter attendance number for position " + i);
      final int inp = attendance.nextInt();
      switch (inp) {
        case 1:
        case 0:
          number[i] = inp;
          break;
        default:
          System.out.println("Invalid entry.");
          i--;
      }
    }
    System.out.println("Collected data: " + Arrays.toString(number));
  }
}