不兼容类型的问题

时间:2013-10-28 05:54:05

标签: java

我是Java和学习的新手 - 所以请原谅这可能是个愚蠢的问题!

这是一款简单的Paper Rock Scissors游戏......

使用BlueJ我一直收到此错误;

“不兼容的类型”

运行此代码时;

import comp102.*; 

import java.util.Scanner;


public class RPS{

    String paper = "paper";
    String rock = "rock";
    String scissors = "scissors";    

public void playRound(){

        String paper = "paper";
        String rock = "rock";
        String scissors = "scissors";    

        System.out.print ('\f'); // clears screen
        Scanner currentUserSelection = new Scanner(System.in);

        String enterText = null;
        System.out.println("Make your Selection; Paper, Rock or Scissors: ");
        enterText = currentUserSelection.next();

        System.out.println("enterText = " + enterText);

        if(enterText = paper){
            System.out.println("the IF Stmt is working");
        }

    }

错误是指这一行“if(enterText = paper){”

非常感谢

6 个答案:

答案 0 :(得分:1)

您正尝试在if中分配不允许的值

if(enterText = paper)  //here if expects expression which evaluates to boolean  

更改为,

if(enterText == paper)

来自language specs jls-14.9

  

if语句允许条件执行语句或条件选择两个语句,执行一个或另一个但不是两个。

     

Expression必须具有boolean或Boolean类型,否则会发生编译时错误。

而不是==运算符使用String#equals来比较字符串。

if(enterText.equals(paper))  //this will compare the String values  

另见

答案 1 :(得分:0)

使用

if(enterText == paper)

代替

答案 2 :(得分:0)

if{..}条件更改为

if(enterText.equals(paper)){
  System.out.println("the IF Stmt is working");
}

因为您在if条件中分配值。所以它无效。

在if条件下,你必须检查它是 true 还是 false

if(){..}

语法

if(true or false) {
  //body
}

答案 3 :(得分:0)

 if(enterText = paper){
            System.out.println("the IF Stmt is working");
 }

你应该使用==来检查是否相等。但是因为你正在处理字符串,所以使用equals()方法

e.g。

 if(enterText.equals(paper)){
        System.out.println("the IF Stmt is working");
 }

答案 4 :(得分:0)

if(enterText = paper){
  System.out.println("the IF Stmt is working");
}

您正在使用=这是赋值运算符。

==检查是否相等。

在java中检查字符串的相等性,你应该使用equals()

<强>原因: Why doesn’t == work on String?

所以你的代码变成了,

if(enterText.equals(paper)){
      System.out.println("the IF Stmt is working");
    }

答案 5 :(得分:0)

    if(enterText = paper){
        System.out.println("the IF Stmt is working");
    }

应该是

    if(enterText == paper){
        System.out.println("the IF Stmt is working");
    }