2

所以..我正在尝试学习更多Java,并决定创建一个简单的正面/反面硬币翻转,但似乎无法让它工作。在“else”上给出错误,并在“标记“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!");
         }  
      }
}
4

3 回答 3

2

你错过了一个开括号if statement

 if (flip == 1) {
        System.out.println("Heads");
    }
于 2013-01-04T22:42:25.530 回答
2

这一行: if (flip == 1)

应改为:

if (flip == 1){

那应该解决它!

于 2013-01-04T22:42:48.723 回答
2

正如其他答案所表明的那样,您在if-statement 中错过了一个左大括号。我将添加一些其他建议。

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

  • 为什么不做flip一个boolean?有truefalse有尾。boolean是这个变量更合适的类型。如果您进行了更改,则可以使用nextBoolean方法 ofRandom而不是nextInt

如果您进行了第二个项目符号中提到的更改,则可以将ifas

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

在我看来要清楚得多。

于 2013-01-04T22:45:37.377 回答