什么是完成此循环所需输出的首选方法?

0 java while-loop nested-if

我写了一个小程序,只需要通过查看电子邮件地址并将字母返回给字符来获取电子邮件发件人的姓名@.

我用两种方式编写了while循环,一种方式是循环,第二种方式是使用嵌套的if语句.两者是一样好还是一种优于另一种的首选方法?

循环启动时:

public void FindUserName() {

    Scanner keyboard = new Scanner(System.in);
    char symbol = ' ';
    System.out.println("Please enter email!");
    symbol = keyboard.findWithinHorizon(".", 0).charAt(0);

    while (symbol != '@') {
        System.out.print(symbol);
        symbol = keyboard.findWithinHorizon(".", 0).charAt(0);
    }
    System.out.println();
}
Run Code Online (Sandbox Code Playgroud)

使用嵌套的if语句来破坏if symbol == '@'

public void FindUserName() {

    Scanner keyboard = new Scanner(System.in);
    char symbol = ' ';
    System.out.println("Please enter email!");

    while (symbol != '@') {
        symbol = keyboard.findWithinHorizon(".", 0).charAt(0);
        if (symbol == '@') {
            break;
        }
        System.out.print(symbol);
    }
    System.out.println();
}
Run Code Online (Sandbox Code Playgroud)

YCF*_*F_L 6

您不需要进行循环,您可以轻松使用:

String email = "email@abd.com";
String str = email.substring(0, email.indexOf("@"));
Run Code Online (Sandbox Code Playgroud)

这会给你的 email