首页 > 解决方案 > 为什么 for readelements() 来回循环不打印出来?

问题描述

所以我一直试图让我的数组列表以正确的顺序打印出来,但由于某种原因它一直打印我向后插入的原始输入,我尝试以相反的顺序读取数组,但它也不起作用.

public static void Add()
{
    System.out.println("You may now enter your virtual diary entry...");
    System.out.println("You may END the program at any time by typing in endp...\n");
    boolean loop = true; 
    while(loop)
    {
        String Stop = Cons.nextLine();

        if (Stop.equals("endp")| Stop.equals(""))
        {
            readelements();
            break;  
        } else {
            for (int i =0 ; i <= Notes.size(); ) {

                Notes.add(i, Stop); 
                i++;
                break; 
            }
        }
    }
} 

public static void readelements()

{

    if (Empty()) {

        Empty();
    }
    for(int i =0; i < Notes.size(); i++) {
        System.out.println(i + " = " + Notes.get(i).toString());
        Notes.toString();
    }   
}

标签: java

解决方案


在您的 else 块中,您在一次迭代后中断(当 i = 0 时),因此您始终在运行 Notes.add(0, Stop)。这会将 Stop 添加到 Notes,因此 Notes 将以相反的顺序排列。删除中断将导致您将重复的元素插入 Notes(请注意,您正在循环但始终插入 Stop)。尝试将整个 else 块更改为 just Notes.add(Stop);。这会将 Stop 的当前值添加到 Notes 的末尾,并且应该可以解决您的问题。


推荐阅读