Java 投币代码错误/问题

Java 投币代码错误/问题,java,Java,所以。。我试图学习更多Java,并决定创建一个简单的正面/反面硬币翻转,但似乎无法使其工作。用“Syntax error on token”else“{expected”在“else”上给出错误,但在这行的末尾,我已经有了一个{。有人能给我解释一下吗?或者我做错了什么?谢谢 import java.util.Random; class CoinFlip { static int flip; public static void main(String[] args) {

所以。。我试图学习更多Java,并决定创建一个简单的正面/反面硬币翻转,但似乎无法使其工作。用“Syntax error on token”else“{expected”在“else”上给出错误,但在这行的末尾,我已经有了一个{。有人能给我解释一下吗?或者我做错了什么?谢谢

import java.util.Random;

class CoinFlip {
    static int flip;
    public static void main(String[] args) {
    coin();
    }

    static void coin() {
    Random rand = new Random();
    flip = rand.nextInt(2);
    System.out.println("You flipped a " + flip);
    heads(flip);
    }

    static void heads(int flip) {
    if (flip == 1)
        System.out.println("Heads");
    }

         else if (flip == 2) {
         System.out.println("You win! Congratulations!");
         }  
      }
}

对于
if语句

 if (flip == 1) {
        System.out.println("Heads");
    }
这一行:
if(翻转==1)

应改为:

if(flip==1){


这应该可以解决问题!

因为其他答案表明您在
if
-语句中遗漏了一个大括号。我将添加一些其他建议

  • 考虑通过缩进方法中的代码部分来正确格式化代码。这样做将使所有内容更具可读性(并帮助您找到类似这样的错误!)。某些IDE(如Eclipse)可以为您自动格式化代码

  • 为什么不将
    flip
    设为
    boolean
    ?将
    true
    设为head,将
    false
    设为tail。
    boolean
    是此变量更合适的类型。如果进行了更改,可以使用
    Random
    的方法,而不是
    nextInt

如果您进行了第二个项目符号中提到的更改,您可以将
If
重写为

if (flip) {
    System.out.println("Heads");
} else {
    System.out.println("You win! Congratulations!");
}

我的观点更清楚。

我还建议始终使用
{}
。即使是在
if
else
之后允许有一个语句,因为
谢谢大家,非常感谢帮助!@user1949982没问题,很乐意帮助。