我无法找到运行以下代码的方法。每次按下输入按钮,它都会在数组中打印出一个项目。在哪里我不知道写什么我写了伪代码。
while(true)
{
if(enter button pressed)
{
print_item();
}
}
private void print_item()
{
for(String item: array)
{
System.out.println(item);
}
}
现在如果代码运行,它会在按下enter时打印所有项目。我将如何获得逐项打印的代码
答案 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);
}
您需要添加边界检查以避免错误。