[resolvido] Fora travar o sistema qual a utilidade de um laço infinito?
6 respostas
ksmarini
Pode parecer bem besta minha pergunta, mas estou lendo uma apostila para iniciantes da t2ti aqui com os seguintes dizeres:
//esse é um laço infinito. Pra que ele serve?while(true){if(obj.z==0){break;}}
Achei melhor perguntar que ficar na dúvida, pois na apostila não tem resposta. O laço infinito tem alguma utilidade mesmo?? Se tiver, por favor, deem algum exemplo onde eu possa usar isso.
vlw
Pode parecer bem besta minha pergunta, mas estou lendo uma apostila da t2ti aqui com os seguintes dizeres:
Fora travar o sistema qual a utilidade de um laço infinito?
//esse é um laço infinito. Pra que ele serve?while(true){if(obj.z==0){break;}}
Achei melhor perguntar que ficar na dúvida, pois não tem resposta.
vlw
A repetição controlado por contador é chamada de repetição definida porque sabemos quantas vezes o loope sera executado, a repetição controlada por sentinela é chamada algumas vezes de repetição indefinida por não saber quantas vezes o loop sera executado, ou seja: permanece executando algo até esta condição não ser mais verdadeira, fonte( livro da Deitel 6 edição capitolo4.)
maior_abandonado
vai da lógica do programa que você está fazendo…
supondo que você queira que o programa execute agora e depois de 1 em 1 hora ele execute de novo, deixa o código com o loop infinito e no final do loop um sleep de 1 hora…
supondo que você esteja eseprando alguma determinada condição, deixa ele com o true, sendo assim infinito e de tempo em tempo verifica a condição e caso ela esteja válida você da um break.
MaYaRa_SaN
Já usei laço infinito pra fazer um teste de estresse num sistema…
quanto a executar uma rotina de tempos em tempos, uso o Quartz que me permite agendar tarefas
viniciusalvess
Um exemplo do mundo real para você ver !
publicvoidconnect()throwsIOException{this.clientList.clear();server=newServerSocket(port);newThread(newRunnable(){@Overridepublicvoidrun(){Server.this.getPrintable().printStatus("Server Port: "+port);try{while(true){//Inicicio do loop Infinito Socketso=server.accept();newServerRunnable(so,Server.this);}// Fim do loop Infinito }catch(SocketExceptione){killAll();Server.this.getPrintable().printError("SocketException: "+e.getMessage());Server.this.getPrintable().printError("Server offline");// disconect();}catch(IOExceptione){killAll();Server.this.getPrintable().printError("IOException: "+e.getMessage());Server.this.getPrintable().printError("Server offline");// disconect();}}}).start();}
rsantik
Laço infinito é usado p/ casos específicos, vai depender do caso.
Se vc for desenvolver Game, provavelmente irá usa laços infinitos, como por exemplo > fique tocando a musica enquanto o game estiver rodando e etc…
Para realizar testes de software
Mas é incomum escrever laços infinitos dentro de um sistema, na verdade, a apostila cita p/ vc a possibilidade de existir o laço infinito, mas não necessariamente você usará no futuro em algum sistema, é muito dificil usarem esse tipo de coisa… faz assim… se um dia vc precisa usar um laço infinito, você sabe que existe e sabe como utiliza-lo na sua aplicação…então nem esquenta!
Abs
Rodrigo
ksmarini
Todas as explicações foram muito boas, gostei em especial da explicação do rodrigo. Muito obrigado pessoal. Aqui o povo é ninja em programação mesmo.