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);
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