我的 Java 程序意外终止

My Java program Terminate unexpectedly

我已经创建了一个类似 twitter 的程序。 这是我程序的一部分。

public static void main(String[] args) {
    while (true) {Scanner a = new Scanner(System.in);
        System.out.println("1.Login\t2.Sign Up\t0.Close");
        int choice = 0;
        choice = a.nextInt();
        User user = new User();
        Tweets tweets = new Tweets(uSname);
        Account accounts = new Account();
        switch (choice) {
        case 1:
                Scanner b = new Scanner(System.in);
                System.out.println("Enter UserName:");
                uSname = b.nextLine();

                Scanner c = new Scanner(System.in);
                System.out.println("Enter Your Password:");
                Cpassword = c.nextLine();


            accounts.login(uSname, Cpassword);
            Tweets t = new Tweets(uSname);
            accounts.follow();
            //t.display();

            break;
        case 2:
            try {
                signup();
            } catch (Exception e) {
                System.out.println(e);
            }

        }
        break;
    }
}

如果执行情况 1 扫描仪在几秒钟内获取输入,它将意外终止而不显示任何错误,它没有调用登录功能!怎么解决,我是初学者

你的第二次突破;正在终止你的循环。将它放在括号上,因为它仅适用于情况 2。

我认为您的问题是以下问题的组合:

  • 使用多个扫描器实例
  • nextInt() 方法只读取一个 int 而不是该行的其余部分。您需要在每次调用 nextInt() 后添加一个 readLine()。
  • 正如 pL4Gu33 所指出的,您的第二个中断需要移到案例 2 中

试试这个代码。

while (true) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("1.Login\t2.Sign Up\t0.Close");
    int choice = 0;
    choice = scanner.nextInt();
    scanner.nextLine();
    User user = new User();
    Tweets tweets = new Tweets(uSname);
    Account accounts = new Account();
    switch (choice) {
    case 1:
        System.out.println("Enter UserName:");
        uSname = scanner.nextLine();
        System.out.println("Enter Your Password:");
        Cpassword = scanner.nextLine();
        accounts.login(uSname, Cpassword);
        Tweets t = new Tweets(uSname);
        accounts.follow();
        //t.display();
        break;
    case 2:
        try {
            signup();
        } catch (Exception e) {
            System.out.println(e);
        }
        break;
    }

}