我需要编写一个程序,不断地询问用户的输入。但是,当用户输入 "无 "时,程序应该停止要求输入,并打印出在输入 "无 "之前的所有输入。(不包括 "无")。
我使用的是一个数组列表,但当我输入 "无 "时,程序应该停止要求输入,并打印出在输入 "无 "之前的所有内容(不包括 "无")。然而,当我输入 "无 "时,程序仍然要求用户输入。这是我的代码。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ShoppingList {
public static void main(String[] args) {
List<String> Items = new ArrayList<String>();
Scanner keyboard = new Scanner(System.in);
System.out.println ("Enter name of item: ");
String item;
while(keyboard.hasNextLine()) {
item = keyboard.nextLine();
if (item != "None") {
System.out.println("Item added: " + item);
Items.add(item);
}
else
break;
}
System.out.println("End of list");
System.out.println();
for (String i : Items) {
System.out.println(i);
}
}
}
所以,你需要把.NET代码改成 "无"。
if (item != "None")
为。
if (!item.equals("None"))
对于字符串,你使用equals()函数。!=在这种情况下是行不通的。
你可以使用这个。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ShoppingList {
public static void main(String[] args) {
List<String> Items = new ArrayList<String>();
Scanner keyboard = new Scanner(System.in);
while (true) {
System.out.print("Enter name of item: ");
String item = keyboard.nextLine();
if (!item.equalsIgnoreCase("none")) {
Items.add(item);
System.out.println("Item added: " + item);
} else break;
}
System.out.println("End of list");
System.out.println();
for (String i : Items) {
System.out.println(i);
}
}