Por que não funciona?

Estou criando um exercicio do DEITEL, mas o código que ele informa não está sendo executado:

[code]import java.util.Scanner;

 public class Comparsion
 {
     public static void main ( String[] args){
         Scanner input = new Scanner (System.in);
                 
         int number1;
         int number2;
         
         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);
                                            
     }

}[/code]

O erro ocorre quando calcula se o number1 é maior que o number2. Erro:

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: 3 segundos)

Que que é esse If maiúsculo aí ?

Ajustei, mas continua dando o mesmo erro!

if (number1 > number2){ System.out.printf ("%d > %d", number1, number2); }

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)

O mesmo erro!

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.

erro atual:

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)

[quote=rafael.cs]erro atual:

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) [/quote]

Está usando alguma IDE? já tentou fazer um clean ou algo do tipo ?

Uso o netbeans…como eu faço um “clean”?

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

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;

eu dei um “limpar e construir projeto” e surgiu o erro:

Created dir: C:\Deitel\Comparacao\build
Updating property file: C:\Deitel\Comparacao\build\built-jar.properties
Created dir: C:\Deitel\Comparacao\build\classes
Created dir: C:\Deitel\Comparacao\build\empty
Created dir: C:\Deitel\Comparacao\build\generated-sources\ap-source-output
Compiling 2 source files to C:\Deitel\Comparacao\build\classes
C:\Deitel\Comparacao\src\Comparacao.java:17: error: ';' expected
             If (number1 > number2)
1 error
C:\Deitel\Comparacao\nbproject\build-impl.xml:915: The following error occurred while executing this line:
C:\Deitel\Comparacao\nbproject\build-impl.xml:268: Compile failed; see the compiler error output for details.
FALHA NA CONSTRUÇÃO (tempo total: 2 segundos)

Mas na linha 17 não tem o ponto e vírgula…

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 ?

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.

Agora consegui com este código:

import java.util.Scanner;
        
     public class Comparacao
     {
         public static void main ( String[] args){
             Scanner input = new Scanner (System.in);
                     
             int number1;
             int number2;
             
             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

Disponha, mas você reparou que esse if aí é uma pegadinha, né ?

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. :wink:

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());