HashSet() 逻辑错误

HashSet() Logical error

import java.util.HashSet;
import java.util.Scanner;
public class HashSetExample {
public static void main(String[] args)
{
    System.out.println("Enter the number of Entries");
    Scanner sc =new Scanner(System.in);
    int i=sc.nextInt();
    HashSet<String> hs=new HashSet<String>();
    System.out.println("Enter the Entries, > to quit");
    Scanner scr =new Scanner(System.in);
    for(int j=0;j<i;j++) {
        String s=scr.nextLine();

        if (s.equals(">")) {
            break;
        } else {
            hs.add(s);
        }

        for(String str:hs) {
            System.out.println("The Entries are" + str);
        }
    }
}

在上面的程序中,首先要求用户输入条目数。如果用户输入 10,则控制台应提示输入十次。如果在输入 5 个条目后用户按下 > 按钮,程序应该终止并显示到目前为止输入的条目。但是由于某些逻辑错误,程序在输入第一个条目后终止并仅显示第一个条目。输出为:

Enter the number of Entries
10
Enter the Entries, > to quit
Paul
The Entries arePaul

将打印循环置于输入循环之外:

for(int j = 0; j < i; j++) {
    String s = scr.nextLine();
    if (s.equals(">")) {
        break;
    } else {
        hs.add(s);
    }
}

for (String str : hs) {// print loop
    System.out.println("The Entries are " + str);
}