Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Dúvida no Ex. 2 da Aula 1 - Teste o seu conhecimento

Gente alguém me explica pq não fez menor sentido esse código para mim lol.

class Teste {
    public static void main (String[] args) {
        for(String argumento: args) {
            System.out.println(argumento);
        }
    }
}

Só entendo o for tradicional mostrado na resposta do exercício =/.

5 respostas

Olá Henrique! Não entendi bem sua dúvida. O que exatamente não faz sentido? Pode deixar mais claro sua dúvida?

Aguardo resposta.

solução!

Bom, por partes:

Quando se executa um arquivo é java, você pode passar argumentos na hora da execução, usando como exemplo esse código:

Caso você execute no prompt de comando: java Teste carro bola

A JVM irá executar o arquivo Teste.class e irá guardar na array de String args as palavras carro e bola, (perceba que o método main ele pede uma array de Strings comumente declarada como args. Dependendo do objetivo isso pode ter varias utilidades a nível de execução.

A segunda parte, a do for: nada mais é do que uma forma de você percorrer por toda a array args e armazenar essa informação em outra variável para que ela possa ser exibida corretamente. Nesse caso ele cria uma nova variável chamada argumento será terá seu escopo exclusivo para esse for.

Quando eu chamo o System.out.println(argumento); ele ira me retornar todos os valores que estão na array args e o resultado seria:

carro
bola

Utilizando o for dessa forma, você pode percorrer por todos os dados de um Array.

Espero que a duvida se encaixe em uma dessa explicações.

Esclareceu bastante Bruno muito obrigado eu não me lembrava como que o arg da classe main funcionava. O que mais me confundiu foram os parâmetros do for, pois em muitas linguagens ele precisa de 3 argumentos e tem uma sintaxe completamente diferente de "for(String argumento: args)" por exemplo.

O simbolo ':' significa o que?Q ual a condicional do for? Imagino que seja rodar até o fim do arry, ou até apontar para null. Isso não esta nem um pouco intuitivo na resposta do exercício =/.

Fica a sugestão para o Alura corrigir isso com alguma explicação previa do funcionamento do for com essa sintaxe diferente e do arg (Resposta Bruno por exemplo), pois considerei um falha na didática do curso. ^^

Concordo, não teve isso no primeiro módulo, tive a mesma dúvida.

Obrigada.

Esse é o famoso foreach, vale lembrar que ele é por referência de memória...