Duvida - o que faz essa função?

8 respostas
tpiardi

Olá, tenho que documentar um código feito por terceiros para um trabalho de engenharia de software, mas estou com dificuldade em entender o que esse código abaixo faz.
Eu sei como o parse funciona, mas o que significa aquele args[0] ali?

public static void main(String[] args)   
     {   
        int max = 100;  
        try   
        {   
            max = Integer.parseInt(args[0]);
        }   
        catch (Exception e)   
     {}

Obrigado

8 Respostas

drsmachado

O argumento que você passa quando o programa é executado a partir de qualquer outro meio que não a IDE que você utiliza.

Ele apenas representa que o valor a ser manipulado é o primeiro item do array (básico, um array tem o índice do primeiro elemento = 0).

yoshikichi

Primeiro, não é função é um método estatico.
O args é um array de String, que ao iniciar vc pd passar os valores para aquele parametro, lembra C

por exemplo: java suaClass_main parametro1 parametro2 parametro3 parametroN

fabiocsilva

O args[0] vem do array String[] declarado no método main e indica passagem de parâmetro ao sistema. se você rodar seu código com java MeuPrograma verá o resultado de acordo com o que foi passado.

Kanin_Dragon

Jovem,

Eu, como professor, me sinto na obrigação de orientar-lhe no inicio de seu jornada em Java.

Coloquei os comentários necessário diretamente no seu código visto que seus conhecimentos são mínimos.

// Implementa função principal de um codigo JSE
    public static void main(String[] args)     
    {     
       // Declara variável do tipo inteiro (primitivo) e inicializa seu valor em 100;
       int max = 100;    
      
       // Bloco try/catch para tratamento de exceção 
       try     
       {     
           // Obtem valor passado por parâmetro através da linha de comando (prompt)
           // Transforma o valor obtido do tipo String para int e atribui à variavel "max"
           max = Integer.parseInt(args[0]);  
       }     
       // Tratamento de erro a ser implemetado
       catch (Exception e)     
     // Por favor, nunca mascare uma exceção, desta forma, qualquer erro será suprimido e você sofrerá para identificar este ponto
    {}

abs.

tpiardi

Muito obrigado pessoal.

Tem outro trexo que eu emperrei, que quer dizer " !isprime[largest]" ? Isso verifica se é false or true?

boolean[] isprime = new boolean[max + 1];

        for (largest = max; !isprime[largest]; largest--)   
        {   
            ;   
        }
nel

Boa tarde!

Amigo, link das apostilas da Caelum, leia a FJ-11 - Java e Orientação a Objetos.
Recomendo fortemente a leitura.

Abraços.

tpiardi

Obrigado Nel, vou ler, mas ainda preciso terminar de avaliar o código pra documenta-lo.

Não é que eu não conheça o comando for, é a condição nele que me é estranha.

drsmachado

tpiardi:
Obrigado Nel, vou ler, mas ainda preciso terminar de avaliar o código pra documenta-lo.

Não é que eu não conheça o comando for, é a condição nele que me é estranha.

Há duas estruturas de comando for, a primeira, padrão, possui os três campos
for (condição inicial (começa aqui); condição de repetição (enquanto isto for verdade); condição de sequência)
Embora o modelo

for(int x = 0; x < 100; x++) //ou for(int x = 100; x > 0; x--) seja o mais conhecido, nada impede que se use mais de uma variável.

A outra estrutura é baseada em forEach e está disponível nas versões mais recentes do java (a partir da 1.5)

List<Object> listaObj = metodoQueGeraALista();
for(Object obj : listaObj){
 //logica aqui
}
Criado 16 de maio de 2011
Ultima resposta 17 de mai. de 2011
Respostas 8
Participantes 6