2013-11-23 28 views
0

所以我一直在看YouTube上的一些「新波士頓」,並且我剛開始像在一個小時前學習java一樣,似乎無法找到我的問題所在。 (沒有錯誤消息)爪哇 - 小巖紙剪刀遊戲。我找不到錯誤

package rockPaperScissors; 

import java.util.Scanner; 
import java.util.Random; 

public class RockPaperScissors { 
    public static void main(String args[]){ 
    String playerChose; 
    String computerChose; 
    String winner; 
    while(true){ 
     System.out.println("Welcome to rock paper scissors!"); 
     System.out.println("Please enter \"rock\", \"paper\", or \"scissors\""); 
     Scanner playerChoice = new Scanner (System.in); 
     playerChose = playerChoice.nextLine(); 
     Random computerChoice = new Random(); 
     int computer = computerChoice.nextInt(3) + 1; 
     switch(computer){ 
      case 1: 
       computerChose = "rock"; 
       System.out.println("Computer chose rock!"); 
       break; 
      case 2: 
       computerChose = "paper"; 
       System.out.println("Computer chose paper!"); 
       break; 
      case 3: 
       computerChose = "scissors"; 
       System.out.println("Computer chose scissors!"); 
     } 

     computerChose = new String(); 
     winner = new String(); 

     if(playerChose=="rock" && computerChose=="scissors" || playerChose=="paper" && computerChose=="rock" || playerChose=="scissors" && computerChose=="paper"){ 
      winner="player"; 
     } 

     if(playerChose==computerChose){ 
      winner="NoWinner"; 
     } 

     if(computerChose=="rock" && playerChose=="scissors" || computerChose=="paper" && playerChose=="rock" || computerChose=="scissors" && playerChose=="paper"){ 
      winner="computer"; 
     } 

     if(winner!="NoWinner"){ 
      System.out.println(winner+" won!"); 
     }else{ 
      System.out.println("Game tied!"); 
     } 
    } 
} 
} 

是的,我是新來這個Java的東西,我不知道爲什麼這個代碼不工作,因爲我想肯定會工作。我相信這只是我需要學習的一些愚蠢的東西。由於我來自Python,這是一個更復雜的問題,因爲有很多Java中不存在的規則在Python中不存在。

+0

因此,在Java中不像在Python中那樣有相同的期望。 –

回答

2

比較字符串,而不是==必須使用equals()方法:

str1.equals(str2) 

當您使用==你是比較內存引用,因爲String不是Java中的原始數據類型。嘗試在Google上搜索。

+0

打我吧...該死的;) – imulsion

+0

如何用equals()方法做一個「!=」? – NinjaKingRo

+0

否定:'!str1.equals(str2)' – Christian