[Duvida] os codigos sao iguais, mas somente um funciona
[img]https://thumbp24-bf1.mail.yahoo.com/tn?sid=14636699424054023&mid=AMfmjkQAAHMmVy3%2BAQHQ2L%2FPW84&midoffset=2_0_0_2_23196&partid=2&f=1400&fid=Sent&ymreqid=b1221719-157a-7da3-01e8-da0024010000&m=ThumbnailService&w=3000&h=3000[/img]
Porque o codigo da esquerda funciona e o da direita nao? estou fazendo um projeto em java no eclipse e sempre que eu coloco o scanner em cima (igual ao da direita) na hora que coloco pra funcionar ele passa do try para o catch direto, e como se a leitura nao existisse.
Porque o codigo da esquerda funciona e o da direita nao? estou fazendo um projeto em java no eclipse e sempre que eu coloco o scanner em cima (igual ao da direita) na hora que coloco pra funcionar ele passa do try para o catch direto, e como se a leitura nao existisse.
Luis Eduardo
Curtidas 0
Respostas
Miguel Junior
10/05/2016
Bom dia, Luis Eduardo.
Não consigo visualizar a imagem que vc anexou em sua pergunta.
Não consigo visualizar a imagem que vc anexou em sua pergunta.
GOSTEI 0
Luis Eduardo
10/05/2016
Bom dia, Luis Eduardo.
Não consigo visualizar a imagem que vc anexou em sua pergunta.
Não consigo visualizar a imagem que vc anexou em sua pergunta.
[img]https://uploaddeimagens.com.br/images/000/625/480/full/tn.png?1463927407[/img]
GOSTEI 0
Miguel Junior
10/05/2016
Boa tarde , Luis Eduardo.
Cara, fiz um teste das duas implementações deu a impressão de loop infinito por conta do comando while além de nem conseguir digitar um número.
Cara, fiz um teste das duas implementações deu a impressão de loop infinito por conta do comando while além de nem conseguir digitar um número.
GOSTEI 0
Luis Eduardo
10/05/2016
o que eu to na duvida e o Scanner, o codigo funciona normalmente, mas quando eu coloco o Scanner de fora do try a leitura e ignorada, sei q isso e problema de buffer do teclado, mas como sou curioso eu queria saber pq isso ocorre.
GOSTEI 0
Renan Di
10/05/2016
No código da direita que apresenta o erro o Scanner foi inicializado fora de um método nem mesmo no construtor da classe ele foi inicializado, assim não dá pra garantir que ele será inicializado no momento do uso, por isso ou você usa ele dentro de algum método ou você cria um trecho de código assim:
static {
Scanner in = new Scanner(System.in);
}
dessa forma você garante que ele será inicializado junto com a instância da classe.
Você deveria colocar um e.printStackTrace no seu catch pra ver a mensagem de erro, eu imagino que você deve ter pegou ou TypeMismatch ou NullPointerException.
static {
Scanner in = new Scanner(System.in);
}
dessa forma você garante que ele será inicializado junto com a instância da classe.
Você deveria colocar um e.printStackTrace no seu catch pra ver a mensagem de erro, eu imagino que você deve ter pegou ou TypeMismatch ou NullPointerException.
GOSTEI 0
Luis Eduardo
10/05/2016
tendi, vlw.
GOSTEI 0