为了账号安全,请及时绑定邮箱和手机立即绑定

循环回到顶部?

循环回到顶部?

慕侠2389804 2023-11-10 16:49:32
我试图在地址中输入错误的内容以重复“您住在哪里?”的问题 使用 while 方法,但它似乎不再起作用了。import java.util.Scanner;public class ImScrewed {    public static void main(String[] args) {        boolean flag = true;        Scanner scan = new Scanner(System.in);        while (flag) {            System.out.println("== Welcome to UwU Cafe! ==");            System.out.print("What is your name? [Starts with 'Mr. ' or 'Ms. '] : ");            String name = scan.nextLine();            if (name.startsWith("Ms. ") || name.startsWith("Mr. ")) {                System.out.println("Welcome : " + name);                flag = false;            } else {                System.out.println("Please re-enter your name");            }        }        System.out.println("Where do you live? [Contains 'Street']");        String address = scan.nextLine();        if (address.contains("Street")) {            System.out.println("Proceed to the next step");            flag = false;        } else {            System.out.println("Please re-enter your address");        }    }}
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

如果出现错误,您需要循环返回。在布尔变量和简单的 while 循环的帮助下,应该没问题。


像这样的东西:


boolean flag = true;


do {

    String name = scan.nextLine();

    if (name.startsWith("Ms. ") || name.startsWith("Mr. ")) {

        System.out.println("Welcome : " + name);

        // break the loop.

        flag = false;

    } else {

        System.out.println("Please re-enter your name");

    } 

} while (flag);

您也可以消除该变量。通过做类似的事情:


while (true) {

    String name = scan.nextLine();

    if (name.startsWith("Ms. ") || name.startsWith("Mr. ")) {

        System.out.println("Welcome : " + name);

        break;

    } else {

        System.out.println("Please re-enter your name");

    }

}

编辑:支持或多个字段。


// previous while loop here


flag = true; // resetting flag


while (flag) {

    System.out.println("Where do you live? [Contains 'Street']");

    String address = scan.nextLine();


    if (address.contains("Street")) {

        System.out.println("Proceed to the next step");

        // terminate the loop

        flag = false;

    } else {

        System.out.println("Please re-enter your address");

    }

}


查看完整回答
反对 回复 2023-11-10
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信