caros amigos
fiz uma classe para estudo como segue abaixo:
porque nao da a mensagem “nao passa aqui 03” nem a mensagem
“nao passa aqui 01” mas executa a mensagem “passa aqui 02”
o que esta acontecendo?
cara… antes de tudo coloque seu código entre as tags CODE
mauricionarcizo
Primeiro coloque seu código em tag code, para podermos visualizar melhor o seu código e assim ajudá-lo…
Não aparece a mensagem “não passa aqui 01”, porque não gerou um exception, caso gere, ele entrara no blobo catch e exibirá a mensagem, já a mensagem “passa aqui02” é normal passar pois está fora do try-catch e exibirá todas as vezes em que o while executar o loop. já o não passa aqui03 não sei porque não está exibindo, já experimentou debugar para ver porque não está mostrando a mensagem?
Não vai cair no "nao passa aqui01" pois não ta dando erro e levantando a Exception
e so vai cair no "nao passa aqui03" se você sair do laço while.
PS - Usa a tag [code] pra colocar o código pra ficar mais fácil de ajudar.
Isso, faltava isso e eu não tinha visto... jonasjgs2 coloque ao final do laço while, senão irá realizar o loop infinitamente...
a++;
Ivan_Alves
Simples você não está saindo do do seu loop para executar o resto do método que aparece “passa aqui02” e ao digitar a entrada no teclado você não está lançando nenhuma exceção por isso não irá mostrar a mensagem “nao passa aqui01”.
Depois ajeita seu código entre as tags CODE para ficar legível. flw!!
isaiaspf
O “nao passa aqui03” só vai ser impresso quando sair do loop.
Para sair do loop é necessário digitar “A” (maiúsculo e sem aspas), equivalente ao char 65.
rodi_ramos
Isso vai cair em um loop infinito…
coloca na linha 17
a++;
ai ele vai rodar até o numero 65
mauricionarcizo
uhmm… não havia percebido… vlw!
rodi_ramos
wellington.nogueira:
rodi_ramos:
Isso vai cair em um loop infinito…
coloca na linha 17
a++;
ai ele vai rodar até o numero 65
Não é porque é while que será loop infinito. E não é porque está testando um int que a variável deve ser incrementada
No caso, ele está comparando int com um valor que representa um caracter ANSII (‘A’).
Verdade, não tinha me atentado para o fato. O loop só termina se encontrar a letra ‘A’ no System… precisa por um ‘A’ ai …
jonasjgs2
caros amigos obrigado pelas dicas…
realmente o loop so terminava quando encontrava a letra “A”…
WellingtonRamos
jonasjgs2:
caros amigos
fiz uma classe para estudo como segue abaixo:
porque nao da a mensagem "nao passa aqui 03" nem a mensagem
"nao passa aqui 01" mas executa a mensagem "passa aqui 02"
o que esta acontecendo?
----------------------------------------------------------------------------------------
Quanto a tua dúvida, primeiro: Ocorre alguma exceção?
O que você está esperando em a != 65? O codigo ANSII 65 representa 'A', não 'a'
WellingtonRamos
mauricionarcizo:
…
Isso, faltava isso e eu não tinha visto… jonasjgs2 coloque ao final do laço while, senão irá realizar o loop infinitamente…
a++;
Se você se atentar, verá que ele está verificando se uma determinada letra foi digitada. Logo, ele NÃO deve incrementar a variável.
Aliás, só por sugestão: Troque a != 65 por a != ‘A’ pois char, na realidade é um tipo inteiro.
WellingtonRamos
rodi_ramos:
Isso vai cair em um loop infinito…
coloca na linha 17
ai ele vai rodar até o numero 65
Não é porque é while que será loop infinito. E não é porque está testando um int que a variável deve ser incrementada
No caso, ele está comparando int com um valor que representa um caracter ANSII (‘A’).