Estou criando um exercicio do DEITEL, mas o código que ele informa não está sendo executado:
importjava.util.Scanner;publicclassComparsion{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);intnumber1;intnumber2;System.out.print("Digite o primeiro numero:");number1=input.nextInt();System.out.print("Digite o primeiro numero:");number2=input.nextInt();If(number1>number2);System.out.printf("%d > %d",number1,number2);}}
O erro ocorre quando calcula se o number1 é maior que o number2. Erro:
tenta colocar o if com letra minuscula e retirar o ponto e virdula depois dos parenteses ( coloque o bloco todo entre chaves, assim fica mais tranquilo)
R
rafael.cs
O mesmo erro!
R
Rodrigo_Sasaki
Se for exatamente o mesmo erro então você está fazendo algo errado. O primeiro erro acusa o If maiúsculo, portanto não deveria acusar o mesmo erro se você já resolveu.
run:
Digite o primeiro numero:20
Digite o primeiro numero:6
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: If
at Comparacao.main(Comparacao.java:17)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 4 segundos)
Está usando alguma IDE? já tentou fazer um clean ou algo do tipo ?
R
rafael.cs
Uso o netbeans…como eu faço um “clean”?
R
Rodrigo_Sasaki
Se eu não me engano ele tem alguma opção do tipo “Limpar e Construir”.
Não sei direito, não usei muito o NetBeans
E
elizeldepaula
testa em linha de comando :). Em linha de comando está rodando normal, deve ser algo com sua IDE :
Só uma duvida, essa classe foi renomeada ? por que o erro acusa o nome Comparacao;
R
rafael.cs
eu dei um “limpar e construir projeto” e surgiu o erro:
o “expected” é justamente porque ele está esperando um ponto e vírgula, mas não tem nada lá.
Quer postar seu código novamente? Tem certeza que está correto ?
V
ViniGodoy
Note que ele está acusando erro no arquivo Comparacao.java, e lá ainda tem um if maiúsculo.
Você provavelmente está corrigindo o erro do arquivo Comparsion.java.
Você não deveria ter excluído o outro arquivo do seu projeto?
Outra coisa, se a idéia era dar o nome em inglês, o termo é comparison, não comparsion.
R
rafael.cs
Agora consegui com este código:
importjava.util.Scanner;publicclassComparacao{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);intnumber1;intnumber2;System.out.print("Digite o primeiro numero:");number1=input.nextInt();System.out.print("Digite o primeiro numero:");number2=input.nextInt();if(number1>number2);System.out.printf("%d > %d",number1,number2);}}
Obrigado pessoal
R
Rodrigo_Sasaki
Disponha, mas você reparou que esse if aí é uma pegadinha, né ?
R
rafael.cs
Sim, mas eu já havia feito o ajuste que você me falou (de colocar ele em minúsculo). O problema é que quando eu coloque a condição dele entre chaves (conforme a outra usuária pediu), o IF voltou a ficar errado, nessa parte deu confusão. Mas enfim, consegui executá-lo.
Obrigado pela paciência meu caro.
V
ViniGodoy
Antes que você tenha problemas. A maneira correta de ler do teclado é usando nextLine().
Ou seja, ao invés disso:
number1=input.nextInt();
Use isso:
number1=Integer.parseInt(input.nextLine());
R
Rodrigo_Sasaki
rafael.cs:
Sim, mas eu já havia feito o ajuste que você me falou (de colocar ele em minúsculo). O problema é que quando eu coloque a condição dele entre chaves (conforme a outra usuária pediu), o IF voltou a ficar errado, nessa parte deu confusão. Mas enfim, consegui executá-lo.
Obrigado pela paciência meu caro. ;)
Não é isso. O que eu quis dizer é que independente da condição nesse if, a mensagem abaixo será impressa. Pode colocar valores maiores pra um e pra outro e ver o que acontece.
R
rafael.cs
[quote=ViniGodoy]Antes que você tenha problemas. A maneira correta de ler do teclado é usando nextLine().
Ou seja, ao invés disso:
number1=input.nextInt();
Use isso:
number1=Integer.parseInt(input.nextLine());
Olá,
Bom…eu estou me baseando pelo livro da Deitel, realmente não sabia desse detalhe.
Obrigado Vini
E
elizeldepaula
Este é o codigo que eu testei e funcionou normalmente :
importjava.util.Scanner;publicclassComparsion{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);intnumber1;intnumber2;System.out.print("Digite o primeiro numero:");number1=input.nextInt();System.out.print("Digite o primeiro numero:");number2=input.nextInt();if(number1>number2){System.out.printf("%d > %d",number1,number2);}}}
R
Rodrigo_Sasaki
elizeldepaula:
Este é o codigo que eu testei e funcionou normalmente :
importjava.util.Scanner;publicclassComparsion{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);intnumber1;intnumber2;System.out.print("Digite o primeiro numero:");number1=input.nextInt();System.out.print("Digite o primeiro numero:");number2=input.nextInt();if(number1>number2){System.out.printf("%d > %d",number1,number2);}}}
Seu if está diferente do do rafael.
E
elizeldepaula
eu alterei o if pra nao dar erro.
R
Rodrigo_Sasaki
O if dele não dá erro, aí que está a pegadinha.
E
elizeldepaula
É que eu alterei o if baseado naquele If do primero codigo.
Quanto ao erro , aparentemente parece que ele estava executando a classe Comparacao , invés da classe Comparsion que é a que ele tava alterando. Por isso o perguntei se a classe havia sido renomeada ou algo do tipo