• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Sota

como fazer um break

16 mensagens neste tópico

boas pessoal eu queria fazer um break num for do genero

for i:=0 to 4 do
                 begin
                      read(pass);
                      if pass = password[i] then
                        m:=1;
                         if pass <> password[i]then
                            begin
                                 writeln ('password incorreta');
                                 m:=2;
                                 break;
                            end;

só que o break não funciona ele deveria sair do ciclo for certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

só que o break não funciona ele deveria sair do ciclo for certo?

se ainda me lembro, está a fazer bem ou seja o break sai da estrutura em que estiver por isso esse break ira fazer saltar para fora do 2º if...

mas diz ai o que queres fazer !! pois pode secalhar pode-se fazer sem o break!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

break a sair do if não faz sentido, não é nenhum ciclo. Tem de partir o ciclo for.

Onde está o end do for?

Chegas a ver "Password incorrecta" no ecran ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

exacto

A chamada de Break() de dentro de um laço while, for, ou repeat loop faz com que seu programa salte imediatamente par ao fim do loop que estiver sendo executado. Este método é útil quando você necessita deixar o loop imediatamente por causa de alguma circunstância que pode aparecer dentro do loop. O procedimento Break() do Pascal é análogo as instruções Break do C e Exit do Visual Basic. O loop a seguir usa Break

in http://www2.fundao.pro.br/articles.asp?cod=53

exprimenta dar a volta com um continue!!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o que eu pretendo e que se encontrar uma letra incompativel com a  pass ele saia do ciclo porque senão se intrudozir a primeira letra mal e o resto bem ele valida

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o que eu pretendo e que se encontrar uma letra incompativel com a  pass ele saia

mas tu podes e acho mais correcto e o que "normal" é compara a password toda com neste casso a tua password

se queres continuar com o vetor pegas numa variavel string que vai ficar com o valor do vectorinteiro ou seja essa variavel vai ficar com a password de acesso

e depois comparas essa string com a tua variavel pass

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenho uma duvida...como tem haver com este topico axei que nao valia a pena criar outro.

e o seguinte como e que no fim de criar um programa faço pa ele saltar fora?? penso que e um break que tenho que fazer, ou estou enganado???

um break apenas funciona numa estrutura FOR, WHILE E REPEAT, certo??

dsclpem tanta pergunta.. :thumbsup::P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim um BREAK funcionará apenas em ciclos. E podes usar o BREAK. Não deves usar labes e gotos, é muito má forma de programação e deverião ser abolidos! :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim um BREAK funcionará apenas em ciclos. E podes usar o BREAK. Não deves usar labes e gotos, é muito má forma de programação e deverião ser abolidos! :P

Nem por isso... pelo que tenho visto em Assembly são usados jumps e labels para simular os ciclos, é apenas mais uma liberdade a programar. Existem casos em que dão jeito, não devem é ser usados frequentemente porque tornam o código confuso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assembley é uma linguagem de baixo nível, os ciclos são implementados sob a forma de saltos condicionais/incondicionais. Em qualquer linguagem de nível superior será difícil encontrar um uso de GOTO que seja justificado e que não dê origem a erros.

Existe muito debate sobre isso, usar ou não usar correcto ou incorrecto. A minha norma é simples, GOTO são o diabo, se alguma vez sequer pensar em usar um então estou doido! Pode parecer muito extremista mas a instrução é estremamente perigosa, mesmo para o programador mais experiente. Retira completo controlo do código e da análise ao compilador, torna o código difícil de ler e interpretar pelo programador.

A instrução break e a instrução return conseguem o mesmo objectivo de uma forma mais limpa e segura então para quê usar a instrução goto? Não vou massacrar mais, usem se quiserem....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu acho que, se criaram essa função deve ser usada tal como as outras... não existe isso de deve ou não ser usada, apenas depende do que te da jeito na hora... eu cá uso e não é por isso que meu programa vai dar erros e ficar confuso, eu percebo muito bem a estrutura...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

André Bittencourt:

Então deves estar informado, se começares a dar saltos para fora de blocos com variáveis declaradas dentro desses blocos, ou a saltar para dentro ou fora de funções, podes lixar o programa por completo.

Tendo em conta que as limitação das cláusulas normais tipo if/while/etc, são manter o código em espaço reservado (bloco). Isto quer dizer que os goto's podem servir para fugir a esta norma dando algum espaço de manobra, já que em blocos não há nada que se faça com goto's que não se possa fazer com as outras cláusulas.

Resumindo... os goto's só têm efectivamente vantagens em relação ao resto quando são usados nas situações mais perigosas.

Tendo em conta que esta situação pode originar bugs difíceis de apanhar, e em geral é possível evitar goto’s, isto implica que uma programação baseada em goto’s é em geral má programação. Porque eu quero ter código que me dê menor probabilidade de ter erros.

E mais, o código está sempre sujeito a alterações (é o mais normal). E aquele salto para fora do bloco que anteriormente era correcto, depois da alteração pode já não o ser porque decidiste que precisavas de uma variável local no bloco… e lá se vai  programa com os pitos só por ter adicionado uma variável.

 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
(...)eu percebo muito bem a estrutura...

Muito bem, mas és programador ou apenas dás uns toques? É que um programador não programa para si, programa sempre para outros. Tu percebes bem mas o progamador que depois vai ter a função de manter o teu código com é que se vai entender?

Vamos separar aqui as coisas, ou defini-las. Existem boas práticas de programação e práticas menos boas, não é por eu perceber a minha identação que isso faz dela boa, não é por eu perceber a minha forma de programar que faz com que seja boa forma de programar. As regras ajudam a que cada vez mais os software não seja algo cheio de bugs. Se o goto fosse tão bom, não existiam tantos avisos sobre o seu uso. É claro que tem a sua utilidade, e acredito que exista 1% dos problemas de programação que não se possa resolver sem o GOTO, mas isso não faz com que o seu uso generalizado seja aceite. Regra geral o GOTO não se usa. Caso, após avaliação exaustiva do problema não se encontre outra solução então poderemos considerar o seu uso.

Posso dizer-te que, embora esteja no grupo de palavras reservadas, a palavra GOTO não faz parte das instruções da linguagem Java.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora