簡體   English   中英

當用戶輸入 aq 時,我無法讓 while 循環中斷

[英]I can't get the while loop to break when the user inputs a q

import java.util.Scanner;
public class ParseStrings {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("Enter input string:");
        String name = sc.nextLine();

        while(name.contains(",") == false) {
            System.out.println("Error: No comma in string.");
            System.out.println("Enter input string:");
            name = sc.nextLine();
        }

        while(!name.equals("q") && !name.equalsIgnoreCase("q")) {
            String[] splitting = name.split(",");
            String first;
            String second;
            
            if(name.compareTo("q") == 1) {
                break;
            }

            if(splitting[1].contains(" ")) {
                first = splitting[0];
                second = splitting[1].substring(splitting[1].indexOf(' ') + 1, splitting[1].length());
            }
            else {
                first = splitting[0];
                second = splitting[1];
            }

            System.out.println("First word: " + first);
            System.out.println("Second word: " + second);

            System.out.println("Enter input string:");
            name = sc.nextLine();
            while(name.contains(",") == false && name.equalsIgnoreCase("q")) {
                System.out.println("Error: No comma in string.");
                System.out.println("Enter input string:");
                name = sc.nextLine();
            }
        }
        
        System.out.println("Thank you!");

        sc.close();
    }
}

當用戶輸入 aq 並停止 while 循環並在最后說謝謝時,我試圖讓它工作。

我已經嘗試了很多不同的方法來做到這一點。

有時打破無限循環更簡單:

import java.util.Scanner;

public class ParseStrings {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.println("Enter input string (q to quit):");
            String input = sc.nextLine();
            if ("q".equals(input.toLowerCase())) {
                break;
            } else if (input.contains(",")) {
                String[] splitting = input.split(",");
                String first;
                String second;
                if (splitting[1].contains(" ")) {
                    first = splitting[0];
                    second = splitting[1].substring(
                            splitting[1].indexOf(' ') + 1,
                            splitting[1].length());
                } else {
                    first = splitting[0];
                    second = splitting[1];
                }
                System.out.println("First word: " + first);
                System.out.println("Second word: " + second);
            }


        }
        System.out.println("Thank you!");
        sc.close();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM