Java 如何将try-and-catch合并到此数组列表中?
当我输入除正整数以外的任何内容时,它将崩溃。我试图在扫描仪之前加入一个try-and-catch,但是max_播放器和for循环的输入有一个红色下划线Java 如何将try-and-catch合并到此数组列表中?,java,try-catch,Java,Try Catch,当我输入除正整数以外的任何内容时,它将崩溃。我试图在扫描仪之前加入一个try-and-catch,但是max_播放器和for循环的输入有一个红色下划线 import java.util.*; public class NameInput { public static void main(String [] args) { ArrayList<String> players = new ArrayList<String>(); System.o
import java.util.*;
public class NameInput {
public static void main(String [] args) {
ArrayList<String> players = new ArrayList<String>();
System.out.println("How many players are going to play the game?");
Scanner input = new Scanner(System.in);
int max_players = input.nextInt();
for(int i = 1; i <= max_players; i++) {
System.out.println("\nPlayer " + i + ", please state your name: ");
String name =input.next();
players.add(name);
}
System.out.println(players.size());
System.out.println(players);
}
}
import java.util.*;
公共类名称输入{
公共静态void main(字符串[]args){
ArrayList players=新的ArrayList();
System.out.println(“有多少玩家要玩这个游戏?”);
扫描仪输入=新扫描仪(System.in);
int max_players=input.nextInt();
对于(int i=1;i
我试图在扫描仪之前加入一个try-and-catch,但是max_播放器和for循环的输入有一个红色下划线
要通过此问题,您需要在try catch块之外声明max_players,并为其初始化一个默认值。这可以使用循环和捕获异常来完成
int max_players = 0;
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("How many players are going to play the game?");
try {
max_players = input.nextInt();
break;
} catch (InputMismatchException ee) {
System.out.println("try again");
input.nextLine ();
}
}
你确定这个问题是可以重现的吗?我看不出你的代码有什么问题。也许他指的是有多少玩家要玩这个游戏?线程“main”java.util.InputMismatchException中的ss异常
我遇到的主要问题是:“有多少玩家要玩这个游戏?”线程“main”中的e异常java.util.Scanner.throwFor(Scanner.java:864)java.util.Scanner.next(Scanner.java:1485)java.util.Scanner.nextInt(Scanner.java:2117)java.util.Scanner.nextInt(Scanner.java:2076)NameInput.main(NameInput.java:13)java我在OP的当前代码中没有看到try catch
块。是的,我知道。但他在我引用的部分中提到了这一点。我遇到了一个问题,它将要求循环中的玩家。我运行你的代码,看起来一切正常,你能更清楚地说明你遇到的问题吗?我能够解决它。感谢你的支持。1)成功获取输入后,您需要中断。for
循环应该在while
循环之后。我确实在while循环之后有for循环。此外,我应该在哪里设置中断?您的for
循环在while
循环中。我应该在哪里设置中断?-正是我设置的位置。哦,我知道我做了什么错。对不起,我对Java缺乏经验。我感谢您的支持和耐心。谢谢。
int max_players = 0;
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("How many players are going to play the game?");
try {
max_players = input.nextInt();
break;
} catch (InputMismatchException ee) {
System.out.println("try again");
input.nextLine ();
}
}