Java 不兼容类型的问题
我对Java和学习还不熟悉,所以请原谅这个可能很愚蠢的问题 这是一个简单的剪刀布游戏 使用BlueJ,我不断地得到这个错误 “不兼容类型” 运行此代码时Java 不兼容类型的问题,java,Java,我对Java和学习还不熟悉,所以请原谅这个可能很愚蠢的问题 这是一个简单的剪刀布游戏 使用BlueJ,我不断地得到这个错误 “不兼容类型” 运行此代码时 import comp102.*; import java.util.Scanner; public class RPS{ String paper = "paper"; String rock = "rock"; String scissors = "scissors"; public void p
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");
}
}
错误是指这一行“如果(enterText=paper){”
非常感谢使用
if(enterText == paper)
相反如果{..}条件为
if(enterText.equals(paper)){
System.out.println("the IF Stmt is working");
}
因为您正在if条件中赋值。因此它无效
在if条件内,您必须仅检查它是否为真或假
语法用于if(){..}
if(true or false) {
//body
}
如果不允许,则尝试在
中赋值
if(enterText = paper) //here if expects expression which evaluates to boolean
改为
if(enterText == paper)
从
if语句允许有条件地执行一条语句或有条件地选择两条语句,执行一条或另一条语句,但不能同时执行两条语句
表达式的类型必须为boolean或boolean,否则会发生编译时错误。
使用运算符来比较字符串,而不是==
if(enterText.equals(paper)) //this will compare the String values
另请参见
您应该使用==来检查是否相等。但由于您处理的是字符串,所以请使用equals()方法
e、 g
这里您使用的是赋值运算符=
其中,==
是检查是否相等
java中的更多内容要检查字符串的相等性,您应该使用equals()
原因:
所以你的代码变成
if(enterText.equals(paper)){
System.out.println("the IF Stmt is working");
}
应该是
if(enterText == paper){
System.out.println("the IF Stmt is working");
}
感谢您的帮助:-)不客气。如果您的问题已解决,您可以将以下答案之一标记为已接受。请参阅此链接
if(enterText = paper){
System.out.println("the IF Stmt is working");
}
if(enterText.equals(paper)){
System.out.println("the IF Stmt is working");
}
if(enterText = paper){
System.out.println("the IF Stmt is working");
}
if(enterText == paper){
System.out.println("the IF Stmt is working");
}