Problemas com do while

boa noite pessoal, preciso implementar no cod. abaixo p/ ler 10 valores que o usuario digitar, mas somente se o valor lido for diferente de 0, só que nao estou conseguindo, só insere o primeiro digitado e encerra a insercao. nao sei trabalhar com o do while direito.

[code]
public static void main(String[] args) {
Integer val;
int cont=0;
Scanner dados = new Scanner(System.in);
ListaBiligada list; list = new ListaBiligada();

System.out.println("Criação da lista");
System.out.println("Digite 10 valores para a lista");

do{
val = dados.nextInt();
if(val!=0)
cont++;
list.insert(val);
} while(cont == 10);
System.out.println("A quantidade é: "+ListaBiligada.nElem);
System.out.println(list.toString());
System.out.println("Deseja Deletar Algum item da lista? Insira o valor ");
val = dados.nextInt();
list.delete(val);
System.out.println(list.toString());
System.out.println(“Digite o valor a ser buscado”);
val=dados.nextInt();
if(list.search(val))
System.out.println(“Elemento encontrado”);
else
System.out.println(“Elemento não encontrado”);
}
}[/code]

  } while(cont == 10); 

Na linha selecionada, após a primeira iteração:
While = enquanto
cont = 1
1 != 10

Manjou?

manjei sim drsmachado, arrumei aqui para cont != 10 e funcionou, estava passando despercebido.

Muito obrigado pela ajuda!!

Abraço

[quote=fabiomarcilio]manjei sim drsmachado, arrumei aqui para cont != 10 e funcionou, estava passando despercebido.

Muito obrigado pela ajuda!!

Abraço[/quote]
Não tá faltando nada?
p/ ler 10 valores que o usuario digitar, mas somente se o valor lido for diferente de 0…

sim, p/ isso eu coloquei:

do{ val = dados.nextInt(); if(val!=0){ cont++; list.insert(val); }else{ System.out.print("Valor 0 inválido"); } } while(cont != 10);

funciona, mas ele para na msg, quero que volte p/ a inserção

Repito:

[quote]
Não tá faltando nada?
p/ ler 10 valores que o usuario digitar, mas somente se o valor lido for diferente de 0…[/quote]
Pois

do{
//faz algo aqui
}while(cont != 10);

Cobre apenas parte da proposta. E se o sujeito digitou 5 números e o sexto for zero, como faz?
Tá faltando uma parte da solução, não?

verdade, estou tentando aqui

pra matar o while eu coloquei cont=10

do{ val = dados.nextInt(); if(val!=0){ cont++; list.insert(val); }else{ System.out.print("Valor 0 inválido"); cont=10; } } while(cont != 10);
agora para ele apresentar a msg de valor invalido e continuar a inserção eu nao tenho ideia

Olá fabiomarcilio

só por frescura minha, que tal usar o comando break para sair do loop?
ai ficaria assim:

do{ val = dados.nextInt(); if(val!=0){ cont++; list.insert(val); }else{ System.out.print("Valor 0 inválido"); break; } } while(cont != 10);

pode ser tambem

tem q ser!

com cont=10, funcionou normal, ele cai na ultima condição

funcionou. mas ficou feio.

e o cara q inventou o break ficou maguado!

mas falando sério, imagine se vc mudar de ideia e em vez de os primeiros 10, vc quizer os primeiros 15.

vc vai ter q mudar em 2 lugares.

com certeza, o break é uma melhor solução