저는 JAVA에 대한 멍청한 프로그래머입니다. 첫 번째 프로그램을 만들려고 노력하고 있습니다. 이 유형과 같은 여러 오류를 제거했지만이 문제를 해결할 수없는 것 같습니다. 여기 속히 내가 도움이 필요 것입니다 :java.util.InputMismatchException은 무엇을 의미합니까
오류 :
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Main.createGame(Main.java:67)
at Main.processCommand(Main.java:116)
at Main.main(Main.java:40)`
`Exception in thread "main"`
코드 :
import java.util.Scanner;
public class Main{
private static final String SAI = "SAI";
private static final String AJUDA = "AJUDA";
private static final String NOVO = "NOVO";
private static final String MAPA = "MAPA";
private static final String KNIGHT = "CAVALEIRO";
private static final String SWORDSMAN = "ESPADACHIM";
private static final String SPEARMAN = "LANCEIRO";
private static final String NORTH = "NORTE";
private static final String SOUTH = "SUL";
private static final String WEST = "OESTE";
private static final String EAST = "ESTE";
private static final String SAIR = "Obrigado por jogar. Ate a proxima.";
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
Game g1 = new Game();
Units u1 = new Units();
String command = "";
String movement = "";
System.out.println("novo - Novo jogo");
System.out.println("ajuda - Mostra a ajuda");
System.out.println("sai - Termina a execucao do programa");
System.out.print("> ");
while(!command.equals(SAI))
{
command = readCommand(in);
movement = readMovement(in);
processCommand(command, movement, g1, u1, in);
}
in.close();
}
private static String readCommand(Scanner in)
{
String command;
command = in.next().toUpperCase();
return command;
}
private static String readMovement(Scanner in)
{
String movement;
movement = in.next().toUpperCase();
return movement;
}
private static void createGame(Game g1, Scanner in)
{
int x = in.nextInt();
int y = in.nextInt();
String team1 = in.next();
int f1x = in.nextInt();
int f1y = in.nextInt();
String team2 = in.next();
int f2x = in.nextInt();
int f2y = in.nextInt();
in.nextLine();
g1.createGame(x, y, f1x, f1y, f2x, f2y, team1, team2);
}
private static void processCommand(String command, String movement, Game g1, Units u1, Scanner in)
{
int tempflag = 0;
switch (command)
{
case AJUDA:
if(g1.on() == false)
{
in.nextLine();
System.out.println("novo - Novo jogo");
System.out.println("ajuda - Mostra a ajuda");
System.out.println("sai - Termina a execucao do programa");
System.out.print("> ");
}
else
{
in.nextLine();
System.out.println("novo - Novo jogo");
System.out.println("mapa - Mostra o mapa do jogo");
System.out.println("cavaleiro - Move o cavaleiro");
System.out.println("espadachim - Move o espadachim");
System.out.println("lanceiro - Move o lanceiro");
System.out.println("ajuda - Mostra a ajuda");
System.out.println("sai - Termina a execucao do programa");
if((g1.turns()%2) == 0)
{
System.out.println(g1.Team1() + "> ");
}
else
{
System.out.println(g1.Team2() + "> ");
}
}
break;
case NOVO:
g1.stop();
createGame(g1, in);
tempflag = (Math.abs(g1.flag1X() - g1.flag2X()) + Math.abs(g1.flag1Y() - g1.flag2Y()));
if(g1.altura() < 10 || g1.largura() < 10)
{
System.out.println("Mapa pequeno demais para o jogo");
}
if(g1.flag1X() < 2 || g1.flag1Y() < 2)
{
System.out.println(g1.Team1() + " bandeira em posicao invalida " + g1.flag1X() + g1.flag1Y());
}
if(g1.flag2X() < 2 || g1.flag2Y() < 2 || tempflag < 5)
{
System.out.printf(g1.Team2() + " bandeira em posicao invalida " + g1.flag2X() + g1.flag2Y());
}
if(g1.Team1() == g1.Team2())
{
System.out.println("As equipas nao podem ter o mesmo nome");
}
else
{
g1.start();
u1.knightAlive1();
u1.swordsmanAlive1();
u1.spearmanAlive1();
u1.knightAlive2();
u1.swordsmanAlive2();
u1.spearmanAlive2();
System.out.println("Jogo iniciado com sucesso, comeca a equipa " + g1.Team1());
System.out.print(g1.Team1() + "> ");
}
break;
여기에 'java.util.InputMismatchException'이 있는데 입력이 잘못되었다는 의미입니다. 당신이 숫자를 기대하는 것처럼 당신은 하나가 아니 었습니다. 입력 순서를 확인하십시오. – janith1024
InputMismatchException - 다음 토큰이 Integer 정규 표현식과 일치하지 않거나 범위를 벗어난 경우. 전화 번호를 입력하고 있습니까? – Santosh
[스택 오버플로 사용자에 대한 연구 노력이 얼마나 필요합니까?] (https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users) 대답, * "많이, 어리석은 금액. 당신이 할 수 있다고 생각하는 것 이상의 것. 당신이 로프의 끝까지 도달하고 그 대답을 얻지 못한 것에 대한 고통이 당신의 질문을 게시 함으로서받은 엄청난 수치를 초과한다면, 그것은 그 시점에서 물어볼 가치가있는 좋은 질문을하기 위해 필요한 연구를 다 했으니 까! "* –