Erro na hora de compilar

Olá galera, estou iniciando em JAVA e tenho que desenvolver um programa que manipula uma tabela de cereais.
O código já está todo desenvolvido, porém acontece um erro no momento da compilação.
Segue o código:[code]
// Programa que manipula uma tabela de cereais

public class ManipulaCereais
{ public static void main(String args[])
{

// Declaração das variáveis
int n;
int i;
int j;
int ano[];
int prod[][];
int prodtotal[];
String cereal[];
int prodanual[];
String cerealx;
int pos;
int anoQ;
int maior;
int anomaior;

// Leitura da quantidade de cereais
System.out.println(“Entre com a quantidade de cereais”);
n = EasyIn.getInt();

// Criação dos vetores e matriz

cereal = new String [n+1];
ano = new int [5];
prod = new int[n][4];
prodtotal = new int[n];
prodanual= new int[n];

// Leitura do vetor ano

for(j=0;j<n;j++)
{ System.out.println(“Entre com o ano”+(j+1)+";");
ano[j] = EasyIn.getInt();
}
// Leitura dos cereais e respectivas produções

for(i=0;i<n;i++)
{System.out.println("Entre com o nome do cereal");
  cereal[i] = EasyIn.getString();
  for(j=0;j<n;j++)
  {System.out.println("Produção do ano"+ano[j]+":");
    prod[i][j] = EasyIn.getInt();}
}
// ProdTotal

for(i=0;i<n;i++)
{prodtotal[i]=0;
  for(j=0;j<n;j++)
  {prodtotal[i] = prodtotal[i]+prod[i][j];
}
}

// Geração do vetor ProdAnual
  prodanual = new int[4];
for(j=0;j<n;j++)
{prodanual[j]=0;
  for(i=0;i<n;i++)
  {prodanual[j]= prodanual[j]+prod[i][j];
  }
}

// Impressão dos nomes dos cereais e respectivas produções totais
System.out.println(“Produção total dos cereais”);
for(i=0;i<n;i++)
{System.out.println(“Cereal=” +cereal[i]);
System.out.println(“Produção total=”+prodtotal[i]);
}

// Impressão da produção anual de cada ano
System.out.println("Produção total anual");
  for(j=0;j<n;j++)
{System.out.println("Ano="+ano[j]);
  System.out.println("Produção anual="+prodanual[j]);

}

// Impressão da produção de cada ano de um dado cereal cujo nome é lido

System.out.println(“Entre com o nome de um cereal”);
cerealx = EasyIn.getString();
cereal[n] = cerealx;
pos = 0;
while(!cerealx.equals(cereal[pos]));
{ pos = pos+1;}
if(pos==n)
{ System.out.println(“Cereal não encontrado”);}
else{System.out.println(“Produção em cada ano”);}
for(j=0;j<n;j++)
{System.out.println(“Ano=” +ano[j]);
System.out.println(“Produção=”+prod[pos][j]);
}
// Impressão da produção anual de um dado lido
System.out.println(“Entre com o ano cuja produção anual deseja obter”);
anoQ= EasyIn.getInt();
ano[4]= anoQ;
pos = 0;
while(!anoQ.equals(ano[pos]))
{pos= pos+1;}
if(pos==4)
{ System.out.println(“Ano não encontrado”);}
else{System.out.println(“Produção Anual=”+prodanual[pos]);
}

    // Determinação do ano de maior produção de um dado cereal cujo nome é lido
    
    System.out.println("Entre com o nome do cereal");
    cerealx= EasyIn.getString();
    pos=0;
    cereal[pos]=cerealx;
    while(!cerealx.equals(cereal[pos]))
    {pos=pos+1;}
    if(pos==n)
    {System.out.println("Cereal não encontrado");}
      else{maior=1;
           anomaior=1;
           for(j=0;j<n;j++)
           {if
             (prod[pos][j]>maior)
           { maior= prod[pos][j];
             anomaior=ano[j];
           }
           }
      }

System.out.println(“Maior prdoução=”+maior);
System.out.println(“Ano de maior prdoução=”+anomaior);
}
}
[/code]

Nessa parte, na linha 102 :
[while(!anoQ.equals(ano[pos]))
ta acontecendo o seguinte erro:
Error: int cannot be dereferenced

O que pode ser !?

Abraço e obrigado desde ja :wink:

a matriz ano eh uma inteira, como q vc me quer dar um equals ?

A variável anoQ é uma variável primitiva int, e varíaveis primitivas não armazenam referências, logo não podem ser usadas para chamarem métodos, como por exemplo o método equals. Para comparar números inteiros em relação à igualdade você deve usar == ou !=. Sendo assim, substitua a instrução while(!anoQ.equals(ano[pos])) pela instrução while(anoQ != ano[pos]).

é isso ae…

int é primitivo… naum tem métodos!!! então deve ser comparado com == e naum com .equals("") :slight_smile:

Valeuuu mesmo gente (Y)