루프를 제외한 모든 작업이 "y"또는 "n"을 입력 할 때 다시 재생할 것인지 묻는 메시지가 나타나면 내 인생에 대해 파악할 수없는 오류가 발생합니다.잠시 시간을 갖지 못하거나 ... while 루프를 사용하면 여러 답을 찾아 볼 수 없습니다. 아무것도 작동하지 않습니다.
이 코드가 형식을 벗어나면 실례합니다. 복사하여 붙여 넣기하십시오.
/* © Tucker Fowler 2015
*/
package rpslizardspock;
import java.util.Scanner;
import java.util.Random;
/**
*
* @author Tucker
*/
public class RpsLizardSpock {
public static void main(String[] args) {
String userChoice;
boolean goAgain;
boolean y = true;
boolean n = false;
Scanner sc = new Scanner(System.in);
Random ra = new Random();
while (goAgain = y) {
System.out.println("Welcome to Rock, Paper, Scissors, Lizard, Spock\n\n"
+ "Please make a Choice: ");
userChoice = sc.nextLine();
String ucConv = userChoice.toUpperCase();
System.out.println("You Chose: " + userChoice);
int cpuChoice = ra.nextInt(5) + 1;
if ((cpuChoice == 1) && (((ucConv.equals("LIZARD"))) || ((ucConv.equals("SCISSORS"))))) {
System.out.println("\n\nComputer chose Rock, You Lose");
} else if ((cpuChoice == 1) && (((ucConv.equals("PAPER"))) || ((ucConv.equals("SPOCK"))))) {
System.out.println("\n\nComputer chose Rock, You Win");
} else if ((cpuChoice == 2) && (((ucConv.equals("SPOCK"))) || ((ucConv.equals("ROCK"))))) {
System.out.println("\n\nComputer chose Paper, You Lose");
} else if ((cpuChoice == 2) && (((ucConv.equals("SCISSORS"))) || ((ucConv.equals("LIZARD"))))) {
System.out.println("\n\nComputer chose Paper, You Win");
} else if ((cpuChoice == 3) && (((ucConv.equals("LIZARD"))) || ((ucConv.equals("PAPER"))))) {
System.out.println("\n\nComputer chose Scissors, You Lose");
} else if ((cpuChoice == 3) && (((ucConv.equals("SPOCK"))) || ((ucConv.equals("ROCK"))))) {
System.out.println("\n\nComputer chose Scissors, You Win");
} else if ((cpuChoice == 4) && (((ucConv.equals("SPOCK"))) || ((ucConv.equals("PAPER"))))) {
System.out.println("\n\nComputer chose Lizard, You Lose");
} else if ((cpuChoice == 4) && (((ucConv.equals("SCISSORS"))) || ((ucConv.equals("ROCK"))))) {
System.out.println("\n\nComputer chose Lizard, You Win");
} else if ((cpuChoice == 5) && (((ucConv.equals("ROCK"))) || ((ucConv.equals("SCISSORS"))))) {
System.out.println("\n\nComputer chose Spock, You Lose");
} else if ((cpuChoice == 5) && (((ucConv.equals("PAPER"))) || ((ucConv.equals("LIZARD"))))) {
System.out.println("\n\nComputer chose Spock, You Win");
} else if ((cpuChoice == 1) && (ucConv.equals("ROCK"))) {
System.out.println("\n\nComputer chose Rock also, Draw");
} else if ((cpuChoice == 2) && (ucConv.equals("PAPER"))) {
System.out.println("\n\nComputer chose Paper also, Draw");
} else if ((cpuChoice == 3) && (ucConv.equals("SCISSORS"))) {
System.out.println("\n\nComputer chose Scissors also, Draw");
} else if ((cpuChoice == 4) && (ucConv.equals("LIZARD"))) {
System.out.println("\n\nComputer chose Lizard also, Draw");
} else if ((cpuChoice == 5) && (ucConv.equals("SPOCK"))) {
System.out.println("\n\nComputer chose Spock also, Draw");
}
System.out.println("\n\n Would you like to play again? y/n");
goAgain = sc.nextBoolean();
}
}
}
내가 오류는 다음과 같습니다
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextBoolean(Scanner.java:1825)
at rpslizardspock.RpsLizardSpock.main(RpsLizardSpock.java:73)
Java Result: 1
처음에는 'while (goAgain)'이어야하며 말 그대로 yes와 no에 대한 부울을 재정의 할 필요가 없습니다. – chris
내가 tryed,하지만 아픈 한 번 더 시간을주지 기억할 수 없다 – TuckerB
응? 스캐너가 y가 참이고 n이 거짓이라는 것을 어떻게 알 수 있습니까? – kirbyquerby