Por favor qual é a diferença dentre for, forEach e While? Poderia me citar exemplo prático?
Atenciosamente,
André AS
Por favor qual é a diferença dentre for, forEach e While? Poderia me citar exemplo prático?
Atenciosamente,
André AS
sim.
// a exp1 é executada uma vez. Sempre depois que a ultima linha do for for executada a exp2 será executada.A exp2 pode ser executada varias vezes
for(exp1; condicao; exp2){//as exp são opcionais, a condição é obrigatória.
// corpo do for
}
ex: imprime de 0 até 9;
for(int i=0; i< 10; i++){
System.out.println(i);
}
while(condicao){// utiliza somente a condição obrigatória
//corpo do while
}
ex: imprime de 0 até 9;
int i=0;
while(i<10){
System.out.println(i);
i++;
}
já o forEach é pra ser trabalhado com cunjuntos (vetores, listas, mapas...);
int [] vetor= new vetor[3];
vetor[0]=1;
vetor[1]=2;
vetor[2]=3;
for(int n: vetor){ // é + ou - assim: para cada elemento do vetor faça isso. "n" seria o elemento do vetor a cada iteração do laço.
System.out.println(n);
}
dúvidas?
for, usuado comumente para percorrer arrays e java.util.List, o while utilizado para repetição enquanto uma determinada condição for verdadeira já o foreach é um for melhorado, para explicar o que ele tem de melhor vou citar um exemplo
//java 1.4 <
for (int i = 0; i < list.size(); i++) {
String s = (String) list.get(i);
System.out.println(s);
}
//java 5 >=
for (String s : lista) {
System.out.println(s);
}
Não há tanta diferença... o for e o while são laços, com uma diferença básica:
- o FOR aceita a declaração de uma variável inicial dentro de seu 'construtor', e também executa uma instrução automaticamente ao seu término. Exemplo:for (int i =0; i < 10; i++){
//blablabla, instrucoes pra executar...
//for (variavel_de_inicializacao ; condicao ; instrucao)
}
int i = 0; // a variável de controle é declarada manualmente, fora do laço...
while(i < 10){
//blablabla, mais instrucoes
//while(condicao)
i++; // o incremento (ou alguma outra coisa que "invalide" a condição de verificação) é feito manualmente
}
for (Object obj : listaComIterator){}
//codigo com for-each
public Integer sum(List<Integer> liszt) {
int total = 0;
for(int num : liszt) {
total += num;
}
return total;
//codigo expandido
public Integer sum (List<Integer> liszt) {
int total=0;
for(Iterator<Integer> iter=liszt.iterator(); iter.hasNext();) {
int num = ((Integer)iter.next()).intValue();
total += num;
}
return new Integer(total);
}