Pessoal estou estudando java há alguns meses, sou novo no fórum e provavelmente devo participar mais, pois estou querendo aprender realmente. Estou com o livro da deitel 8° edição no cap.6 exercicio 6.29 que diz assim:
Escreva um aplicativo que simula o lançamento de uma moeda. deixe o proigrama lançar uma moeda toda vez que o usuário escolher a opção “Lançar Moeda” no menu. Conte o número de vezes que cada lado da moeda aparece. Exiba os resultados. O programa deve chamar um método “arremesso” separado que não aceita argumentos e retorna um valor a partir de um enum Moeda( Caras e Coroas ). [Nota: se o programa simular de maneira realista, o arremesso de moeda, cada lado da moeda deve aparecer aproximadamente metade das vezes.]
Vou postar meu código e os meus erros para vocês me ajudarem por favor. Não entendi muito bem sobre enum. Já pesquisei no google e só entendi que enum é uma classe e eu uso para declarar um tipo com um conjunto de CONSTANTES. Mais não sei como usa-las.
// Exercício 6.29: LancaMoeda.java
import java.util.Random;
public class LancaMoeda
{
private enum Moeda{ Cara, Coroa };
private int cara = 0;
private int coroa = 0;
private Moeda cC; // variável do tipo MOEDA para armazenar CARA ou COROA
Random lancar = new Random();
public Moeda arremesso()
{
int x = lancar.nextInt( 2 );
switch( x )
{
case 0:
cC = Moeda.Cara;
cara += 1;
break;
case 1:
cC = Moeda.Coroa;
coroa += 1;
break;
}
return cC;
}
}
// Exercício 6.29: TestaLancaMoeda.java
// Lanca uma moeda toda vez que o usuário escolhe a opção Lançar Moeda
// Exibi o resultado e o número de vezes que lancei cara ou coroa
import java.util.Scanner;
public class TestaLancaMoeda
{
public static void main( String[] args )
{
Scanner entrada = new Scanner( System.in );
LancaMoeda lancarMoeda = new LancaMoeda();
System.out.println( "Escolha uma opção: \n\n1: Lançar Moeda.\n2: Sair.\n" );
int x = entrada.nextInt();
while( x == 1 ) // lança moedas até eu escolher Sair
{
Moeda.cc = lancarMoeda.arremesso();
// exibi o arremesso, o número de caras lançadas até agora e o número coroas lançadas até agora
System.out.printf( "%s\nNúmero de Caras lançadas: %d\nNúmero de Coroas lançadas: %d\n\n",
Moeda.cc, cara, coroa );
// Pergunta novamente se quero sair ou lançar a moeda
System.out.println( "Escolha uma opção: \n\n1: Lançar Moeda.\n2: Sair.\n" );
x = entrada.nextInt();
}
}
}
Uso o editor Geany. Muito bom na minha opinião.
São quatro erros que aparecem no aplicativo TestaLancaMoeda referente as variaveis cara, coroa e Moeda.cc;
