我正在"Java如何编程"一书中进行练习.我应该制作一个模拟掷硬币的应用程序.我应该制作一个方法(翻转),随机返回硬币的一面.我已经决定让方法返回1或2,并且在main方法中我将"转换"值表示硬币的一侧.问题是我收到一条错误消息:"类型不匹配 - 无法从int转换为boolean".我真的认为我一直只使用整数操作,并且看到了布尔语的进入情况.
代码如下:
import java.util.Random;
public class Oppgave629
{
public static void main(String[] args)
{
int command = 1;
int heads = 0;
int tails = 0;
while (command != -1)
{
System.out.print("Press 1 to toss coin, -1 to exit:");
int coinValue = flip();
if (coinValue = 1) {System.out.println("HEADS!"); heads++;}
if (coinValue = 2) {System.out.println("TAILS!"); tails++;}
System.out.printf("Heads: %d", heads); System.out.printf("Tails: %d", tails);
}
}
static int flip()
{
int coinValue;
Random randomValue = new Random();
coinValue = 1 + randomValue.nextInt(2);
return coinValue;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 15
你的代码
if (coinValue = 1) {System.out.println("HEADS!"); heads++;}
if (coinValue = 2) {System.out.println("TAILS!"); tails++;}
Run Code Online (Sandbox Code Playgroud)
应该
if (coinValue == 1) {System.out.println("HEADS!"); heads++;}
if (coinValue == 2) {System.out.println("TAILS!"); tails++;}
Run Code Online (Sandbox Code Playgroud)
您正在为coinValue分配一个int类型,并在if语句中将其评估为bool.
您在语句中使用赋值(=)运算符而不是比较运算符(equality ==)if:
if (coinValue = 1)
Run Code Online (Sandbox Code Playgroud)
应该
if (coinValue == 1)
Run Code Online (Sandbox Code Playgroud)
if语句需要一个布尔表达式,你将1分配给coinValue它,然后尝试将其解释为一个布尔来处理条件.