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);
}
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);
}