在for循环中按下enter时运行代码

时间:2014-02-21 23:34:03

标签: java

我无法找到运行以下代码的方法。每次按下输入按钮,它都会在数组中打印出一个项目。在哪里我不知道写什么我写了伪代码。

while(true)
{
    if(enter button pressed)
    {
         print_item();
    }
}

private void print_item()
{
    for(String item: array)
    {
         System.out.println(item);
    }
 }

现在如果代码运行,它会在按下enter时打印所有项目。我将如何获得逐项打印的代码

4 个答案:

答案 0 :(得分:0)

private void print_items()
{
  for(String item: array)
  {
     System.out.println(item);
  }

  waitForEnterButton(); // <===
}

或者可能

private void print_items() {
  while (moreItems() && waitForEnterButton()) {
    System.out.println(nextItem());
}

答案 1 :(得分:0)

它打印所有元素的原因是因为当调用方法print_item()时,其中的逻辑是打印所有元素是项目。解决此问题的一种方法是使用标志并将参数传递给您的方法,如下所示:

int a = 0;
while(true)
{
    if(enter button pressed)
    {
        print_item(a);
        a = a + 1;
    }
}

private void print_item()
{
    System.out.println(item[a]);
}

答案 2 :(得分:0)

让我们一次解决您的问题。首先,为什么所有项目一次打印。

如果仔细查看代码,很明显为什么所有项目都会立即打印出来。

if(enter button pressed)
{
     print_item();
}

那里没有错误。让我们来看看方法本身:

private void print_item()
{
    for(String item: array) //Wait, for every string in the array!
    {
         System.out.println(item);
    }
}

for(String item: array)为阵列中的每个元素运行打印线

相反,让print_item方法接受整数。像这样:

private void print_item(int index) {
    System.out.println(array[index]); //actually, just call this line instead of the method
}

改变你的循环:

for (int index = 0; index < array.length; index++) {
    wait_for_enter_to_be_pressed;
    print_item(index); //Should be System.out.println(array[index]);
}

等待,取决于您使用的应用程序类型。对于控制台应用程序,这是一个选项:

Scanner waitForEnter = new Scanner(System.in);

for (int index = 0; index < array.length; index++) {
    waitForEnter.nextLine();
    System.out.println(array[index]);
}

waitForEnter.nextLine();Scanner接受输入的方式,所以这将等到给出输入,由输入表示。

答案 3 :(得分:-1)

int index = 0;
while(true)
{
    if(enter button pressed)
    {
         print_item(array[index++]);
    }
}

private void print_item(String item)
{
    System.out.println(item);
}

您需要添加边界检查以避免错误。