2014-12-07 24 views
-1

嘿,我正在尝试创建一个使用java的tictactoe游戏,我遇到了一些麻烦。这种方法应该让用户选择X或O,如果用户输入x或o它应该大写,其他任何东西都应该被拒绝并重复提问。当程序运行时,即使在进入X/X/O/O时,它也会陷入这个while循环中。任何人看到我做错了什么?TicTacToe游戏,要求用户是X或O和无限循环

public char getPlayerChar() { 
    Scanner in = new Scanner (System.in); 
    System.out.println("Would you like to be X or O -> "); 
    String y = in.nextLine(); 
    char t = y.charAt(0); 
    char tUp = Character.toUpperCase(t); 

    while(tUp != 'X' || tUp != 'O') { 
     System.out.println("Your market must be an X or an O"); 
     System.out.println("Please enter an X or an O ->"); 
     y = in.nextLine(); 
     t = y.charAt(0); 
     tUp = Character.toUpperCase(t);   
    } 
    return tUp; 
} 
+0

不要将字符串与'=='进行比较。不过,你可以把第一个字符和使用'=='进行比较。 – August 2014-12-07 02:00:09

回答

0

尝试使用 而(!(y.equals( “X”)|| y.equals( “O”)|| y.equals( “X”)||Ÿ .equals(” “)){

请参阅==和equals()之间的差异文档:)

+0

非常感谢!这解决了它,我会研究这一点,不知道有什么区别。 – John 2014-12-07 02:17:55