我是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){”
非常感谢
答案 0 :(得分:1)
您正尝试在if
中分配不允许的值
if(enterText = paper) //here if expects expression which evaluates to boolean
更改为,
if(enterText == paper)
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");
}