我的 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;
}
}
我已经创建了一个类似 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;
}
}