2016-09-30 4 views
-2

1人が推測を入力するランダムなコインフリッパです。私は主に何かに触れることができません、それは割り当ての指示です。 coin=flip();私はメインには何も変更することはできません:私はエラーがこの行にメインで起こっていることにコインフリップはエラー時に助けを必要とします

Error:(15, 34) java: incompatible types: void cannot be converted to java.lang.String

を実行しようとすると、私はかかわらず、このエラーを取得しています。今夜のおかげです。ここに私のコードです:

public class CoinFlip { 

static String side = ""; 
static String user = ""; 
static String winner = ""; 

public static void main(String args[]) {  
    String coin; 

    greeting(); 

    do 
    { 
     user=IO.getString("Would you like: (H)- Heads or (T)- Tails"); 
     coin=flip(); 
     winner=compare(user,coin); 
     output(user,coin,winner); 

    }while(repeat()); 
} 

public static void greeting() { 
    System.out.println("In a second, choose heads or tails. A coin flip will show and a winner will be shown."); 

} 
public static void flip() { 

    int random = (int) Math.floor(Math.random() * 2); 
    if (random = 0) 
     side = "H"; 
    else if (random = 1) 
     side = "T"; 
} 
public static void compare(String args[]) { 
    if (user = side) 
     winner = "Winner"; 
    else 
     winner = "Loser"; 
} 
public static void output() { 
    System.out.println(side); 
    System.out.println(winner); 
} 
public static void repeat() { 
    String again; 
    if (again = "yes") 
     main(); 
    else if (again = "no") 
     System.out.println("Thanks for playing!"); 
} 
} 
+2

'void flip()'は何も返しませんが、 'coin = flip();'と言ったときに結果を 'coin'に代入しようとしています。 'flip()'を 'String'を返すか、' flip();と言う必要があります。コイン=サイド; '。 –

+1

あなたは '' H '''や '' "T" ''を ''返す'ことになっていますが、 '' void''のメソッド型では不可能です。 '' void flip() ''を '' String flip() ''に変更します。 – f1sh

答えて

3

変更public static String flip() {からpublic static void flip() {とベースの結果のいずれか "H" または "T" を返す必要があります)

return side; 
0

あなたの方法をフリップ((flipの最後に)追加コード上。 したがって、flip()メソッドのシグネチャをvoid戻り型からStringに変更する必要があります。

関連する問題