如何将变量赋值给switch循环中的数组?



如何将变量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;
    }

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

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

如果你想让它转到数组的下一个位置按照David Wallace所说的那样为数组添加一个新的专用变量这样在for循环中它将是

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

然后通过像

这样标记数字数组来改变它的位置
numbers[i] = x;

下面是一个你可能会适应的例子:

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));
  }
}

最新更新