0

如何循环固定长度为 2 的 Java 数组进行迭代而不替换先前的值?以下代码将采用用户输入值迭代循环。但它将替换以前的值:

Scanner input2 = new Scanner(System.in);
char[] block = new char[2];
while (block[0] != 'C' && block[1] != 'C') {
    System.out.println("enter number");
    block[0]=input2.next().charAt(0);
    System.out.println("enter number");
    block[1]=input2.next().charAt(0);
    System.out.println(block);
}

如果用户为数组输入 C,C,则数组应停止迭代。

谢谢

4

2 回答 2

0

这是你想要的吗?循环将在索引[0][1]每次迭代之间切换。

Scanner input2 = new Scanner(System.in);
char[] block = new char[2];
int i = 0;
while (block[0] != 'C' && block[1] != 'C') {
    System.out.println("enter number");
    block[i%2]=input2.next().charAt(0);
    i++;
    System.out.println(block);
}
于 2013-10-26T10:20:19.817 回答
0

有两种方法可以做到这一点:

  1. 使用像HashMap. 可能是最好的解决方案

  2. 创建一个大型二维数组char[][] block = new char[100][2];。这最多只能工作 100 个输入

使用第二种方法,您需要在达到最大数量时增加数组,这是毫无意义的,因为无论如何您几乎都会实现数据结构的底层内容。

我的建议是使用 a HashMap,但我假设您还没有学习数据结构。如果这是一项任务,我唯一可以建议的就是使用具有设定大小的二维数组并且只允许这么多输入。

于 2013-10-26T10:49:03.623 回答