java 无法退出循环[已关闭]

ivqmmu1c  于 2023-02-07  发布在  Java
关注(0)|答案(2)|浏览(120)

19小时前关门了。
Improve this question
我 * 是 * 试图使一个小程序,将采取用户的数据,当用户将打印"列表",它会显示所有的数据,并结束程序,但它不会结束。

  1. import java.util.Scanner;
  2. import java.util.TreeSet;
  3. public class test {
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6. String email = scanner.nextLine();
  7. TreeSet<String> address = new TreeSet<>();
  8. while (true) {
  9. address.add(email);
  10. if (email.equals("LIST")) {
  11. for (String i : address) {
  12. System.out.println(i);
  13. }
  14. }
  15. }
  16. }
  17. }
hts6caw3

hts6caw31#

您的代码不会停止程序。
一种实现方法是在while循环中测试布尔值而不是true,当用户输入LIST时,可以将布尔值设置为false,这里我添加了这样一个变量,并将其命名为shouldEnd

  1. import java.util.Scanner;
  2. import java.util.TreeSet;
  3. public class test {
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6. String email = scanner.nextLine();
  7. TreeSet<String> addres = new TreeSet<>();
  8. boolean shouldEnd = false;
  9. while (!shouldEnd) {
  10. addres.add(email);
  11. if (email.equals("LIST")) {
  12. for (String i : addres) {
  13. System.out.println(i);
  14. }
  15. shouldEnd = true;
  16. }
  17. }
  18. }
  19. }
展开查看全部
8nuwlpux

8nuwlpux2#

use:

  1. import java.util.Scanner;
  2. import java.util.TreeSet;
  3. public class test {
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6. String email = scanner.nextLine();
  7. TreeSet<String> address = new TreeSet<>();
  8. while (true) {
  9. address.add(email);
  10. if (email.equals("LIST")) {
  11. for (String i : address) {
  12. System.out.println(i);
  13. // This is the reason that the program would get terminated
  14. // instantly if you wouldn't take user input.
  15. String tempstr = scanner.next();
  16. exit();
  17. }
  18. }
  19. }
  20. }
  21. }

此改进使用exit()方法终止Java程序。

展开查看全部

相关问题