사용자가 문자열 배열에 입력 한 각 문자열을 할당하려고합니다. 전체 내용은 for
루프에 있으며 배열 인덱스에 의해 평가됩니다.String 배열에 문자열 할당
String skillAssign[] = new String[100];
for (int i=0; isDone == false; i++)
{
System.out.println(skillAssign[i]);
System.out.println(i);
skillAssign[i] = keyboard.nextLine();
if ((!(skillAssign[i].equalsIgnoreCase("stats"))) && (!(skillAssign[i].equalsIgnoreCase("done"))))
{
assignmentValue = keyboard.nextInt();
if (((skillAssign[i].equalsIgnoreCase("health"))) && (skillPoints - assignmentValue >=0))
{
System.out.println("Added " + assignmentValue + " points to Health!");
skillPoints = (skillPoints - assignmentValue);
newMaxHealth = (assignmentValue + newMaxHealth);
}
//code that evaluates the string located inside the skillAssign[i] for other stats
}
첫 번째 문자열이 제대로 평가,하지만 난 입력에 두 번째 문자열을 갈 때, 나는 java.util.InputMisMatchException를 얻을 : 내 코드입니다. 어떻게하면 사용자가 입력 한 배열의 각 인덱스에 문자열을 할당 한 다음 평가할 수 있습니까? (비록 내가 평가 부분을 가지고 있다고 생각한다)
Scanner keyboard = new Scanner
으로 키보드가 구성되고 으로 키보드가 구성된 경우 isDone은 생략되지만 isDone은 true로 변경된다. 스킬 포인트를 제외하고 0으로 설정됩니다.
문제를 해결하기위한 정보를 너무 적게 제공했습니다. 'isDone'이 무엇인지를 말하지 않았습니다. 또한'for' 루프 안에서 무엇을하고 있습니까? 그 외에는 전체 스택 추적을 게시하십시오. –
루프에서 isDone을 수정하지 마십시오. 또한 isDone == false는'! isDone'으로 더 잘 표현 될 수 있습니다. – Tdorno
isDone은 루프 내부의 생략 된 코드에서 수정되었지만 두 번째 루프 이후에 예외가 발생하기 때문에 실제로는 관련이 없습니다. –