2013-01-04 56 views
2

所以..我想學習更多的Java,並決定創建一個簡單的頭/尾擲硬幣,但似乎無法得到它的工作。在「其他」上給出了「令牌上的語法錯誤」else「,{expected」,但在行結尾處我已經有一個{。任何人都可以向我解釋這個嗎?或者我做錯了什麼?由於拋硬幣的代碼錯誤/問題

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!"); 
     } 
     } 
} 

回答

2

至於其他的答案表明你錯過了你的if語句來開括號。我只會添加其他一些建議。

  • 考慮通過在方法中縮進部分代碼來正確地格式化代碼。這樣做會使一切更加可讀(並幫助你找到這樣的錯誤!)。一些IDE(如Eclipse)可以爲您自動設置代碼格式。

  • 爲什麼不製造flip a boolean?以true爲頭,false爲尾。對於這個變量,boolean是更合適的類型。如果所做的更改,你可以使用的Random代替nextIntnextBoolean方法。

如果你在做第二個項目符號中提到的變化,你可以在我看來改寫if作爲

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

更加清晰。

+0

我還將建議總是使用'{}'。即使它的確是一個聲明只是在'if','else'和'for'之後才允許的, – Smit

+0

謝謝你們,非常感謝! – user1949982

+0

@ user1949982沒問題,很高興幫助。 – arshajii

2

你錯過了一個開括號if statement

if (flip == 1) { 
     System.out.println("Heads"); 
    } 
2

這條線: if (flip == 1)

應改爲:

if (flip == 1){

這應該修復它!