0

我正在制作一个游戏人生计划,它的早期阶段。当我运行程序并进入“你想做什么...”并输入“y”时,它会转到else,打印我的测试语句test3,并结束程序。我忽略了什么?为什么如果陈述不符合我的要求呢?

public static void main(String[] args) { 

    Scanner kb = new Scanner(System.in); 

    String userInput = ""; 
    char[][] initialGrid = new char[25][75]; 
    char[][] world = makeInitialGrid(kb, userInput, initialGrid); 
    printGrid(world); 
    userInput = "y"; 
    while (userInput == "y"){ 
     System.out.println("Do you want to make a new generation? (y) yes (n) no"); 
     userInput = kb.nextLine(); 
     System.out.println(userInput); 
     if (userInput == "y"){ 
      System.out.println("test1"); 
      int numOfNeighbors = findNeighbors(world, 6, 2); 
      System.out.println("test2"); 
      System.out.println(numOfNeighbors); 
      //makeNewGeneration(world); 
     } else { 
      System.out.println("test3"); 
      break; 

     } 
    } 
    kb.close(); 

回答

2

对于Java字符串比较,你需要使用String#equals,不==。改为尝试if (userInput.equals("y")) { ...

+0

哦,呃......当然。非常感谢你。 – 2014-11-04 03:31:49

+0

没问题!如果这解决了您的问题,请记住接受答案。 – Gian 2014-11-04 03:32:47