Bom dia amigos, estou com um problema para resolver mais sou novo no mundo da programação em java e estou tendo dificuldades
gostaria que os amigos apenas comentassem este codigo que eu peguei em outro topico, se apenas comentarem dizendo oq cada variavel faz por exemplo ja me ajudariam muito.
segue o Codigo a baixo:
[code]public class megaSena {
public static void main(String[] args) {
Scanner sorte = new Scanner(System.in);
int qtdCartelas = 10;
int qtdDezenas = 6;
String jogo;
String resultado = "";
String s = "";
int x = 1;
int dezena;
int qtde = 1;
double num = 0;
System.out.println("Digite a Quantidade de Jogos: ");
qtdCartelas = sorte.nextInt();
while(qtde < qtdCartelas){
jogo="";
x = 1;
while(x <=qtdDezenas){
num = Math.random();
s = String.valueOf(num);
s = s.substring(6,8).trim();
dezena = Integer.valueOf(s);
if(dezena >=1 && dezena <=60 && !jogo.contains(s)){
jogo = jogo+"-"+String.valueOf(dezena);
}
}
resultado = resultado+"\n"+jogo;
qtde++;
}
System.out.println(resultado);
}
}
Para você entender não adianta comentar o código. É mais fácil você perguntar quais são as suas duvidas sobre o código. Aconselho também a escrever seu próprio código. Só assim você vai conseguir entender.
Segue conforme solicitado. Eu fiz alterações em função de algumas inconsistências no aplicativo. Sinceramente eu não consegui compreender qual é real objetivo desse aplicativo, mas está funcionando.
Ele pode ser melhorado, principalmente no quesito de O.O. e poderia ser aplicada uma lógica de programação mais assertiva. Eu decidi deixa-lo mais próximo da versão enviada por você. Espero que eu possa ajuda-lo com seus estudos. Boa sorte.
import java.util.Scanner;// Foi necessário incluir essa linha, em função do uso do método "NextInt"
//Declaração de classe
public class MegaSena {
//Declaração do método main
public static void main(String[] args)
{
//Cria um objeto do tipo Scanner para receber dados digitados em tela.
Scanner sorte = new Scanner(System.in);
//OBS:Iniciar com valor 10. Mas quando executa( qtdCartelas = sorte.nextInt ) valor é sobrescrito.
//Penso que não faz sendito começar com valor padrão uma vez que ele será informado em seguida.
int qtdCartelas = 10; //Captura dados em tela digitado pelo usuáro e Referência para primeiro while
int qtdDezenas = 6; //Referência para segundo while
//Declaração de variáveis do tipo String
String jogo; //Recebe valores dentro do IF
String resultado = ""; //Recebe valores da variável (jogo)
String s; //Recebe valores aleatórios convertidos em String
String s1; //Recebe os dois últimos dígitos de num( que gera valores aleatórios )
//Declaração de variáveis do tipo int
int x = 1; //Contador para segundo while
int dezena=1; //Recebe os dois últimos dígitos de num( que gera valores aleatórios )
int qtde = 1; //Contador que não tem função no aplicativo
double num = 0; //Recebe sequência de números aleatórios de 0 até 0.999
//Recebe quantidade de cartelas. Registro é informado pelo usuário.
System.out.print("Digite a Quantidade de Jogos: ");
qtdCartelas = sorte.nextInt(); //Recebe valor digitado pelo usuário, graças declaração do ( import java.util.Scanner )
//Executa até que ( qtde ) seja menor que qtdCartelas( Valor esse informado pelo usuário )
while( qtde < qtdCartelas )
{
jogo="";
x = 1;
//Executa até que x( Valor fixo 1 ) seja menor que qtdDezenas( valor fixo 6 )
while( x <= qtdDezenas )
{
//Método "random" da classe Math: gera um número aleatório de 0 até 0.9999
num = Math.random();
//Coverte Double para String
s = String.valueOf( num );
//Impressão a partir do índice 16 da String
//Mudei de 6 para 16 porque você converte (dezena) para inteiro,
//Se tivesse mantido 6 haveria estouro na variável integer
//Assim vamos pegar sempre os dois últimos dígitos de num
s1 = s.substring( 16 );
//Recebe sequência de números a partir do dígito 16
dezena = Integer.valueOf( s1 );
//Executa somente se dezena estiver entre 1 e 60 e que
//Em (jogos) não tenha número dezena
if( dezena >= 1 && dezena <=60 && !jogo.contains( s ) )
{
jogo += "-" + String.valueOf( dezena );
}
x++;//Fiz inclusão dessa atribuição para que while seja encerrado
} //Fim do segundo while
resultado = jogo; //(resultado) recebe jogo.
qtde++; //Atribui valor na variável (qtde). Não entendi por quê foi feira essa atribuiçao??
}//Fim do primeiro while
//Impressão da variável (Resutado)
System.out.printf( "Resultado:%s", resultado );
}//Fim do método main
}//Fim classe