Outro erro :S...agora na exibicao de menu

5 respostas
Gabriel_Davi
// 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;
  int escolha;
  maior = 0;
  anomaior= 0;
  escolha=-1;
  String entrada;
  
  // 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!=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{
                for(j=0;j<n;j++)
               {if
                 (prod[pos][j]>maior)
               { maior= prod[pos][j];
                 anomaior=ano[j];
               }
               }
          }
System.out.println("Maior produção="+maior);
System.out.println("Ano de maior produção="+anomaior);

while(escolha!=0)
{
String parametro=  (String)JOptionPane.showInputDialog(null, "Menu de opções:\n"+
                                                       "[1]Impressão dos nomes e respectivas produções\n"+
                                                       "[2]Impressão dos anos e respectivas produções\n"+
                                                       "[3]Localizar produção anual de um determinado ano\n"+
                                                       "[4]Imprimir produção anual de um cereal\n"+
                                                       "[5]Imprimir o ano de maior produção de um cereal\n"+
                                                       "[0]Encerrar programa", JOptionPane.QUESTION_MESSAGE, null, null, null);
   

escolha = Integer.parseInt(parametro);  //transforma uma String em um int (inteiro)

   switch(escolha)
   { case 1: 
                     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();}
    }
                     break;
                     
       case 2: 
          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]);
}
      break;
      
     case 3 :    
       System.out.println("Entre com o ano cuja produção anual deseja obter");
      anoQ= EasyIn.getInt();
      ano[4]= anoQ;
      pos = 0;
     while(anoQ!=ano[pos]) 
      {pos= pos+1;}
      if(pos==4)
      { System.out.println("Ano não encontrado");}
        else{System.out.println("Produção Anual="+prodanual[pos]);
        }
                        
     break;
     
     case 4: 
          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]);
                            
                            break;
                            
   case 5: 
                                    
        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{
                for(j=0;j<n;j++)
               {if
                 (prod[pos][j]>maior)
               { maior= prod[pos][j];
                 anomaior=ano[j];
               }
               }
          }
System.out.println("Maior produção="+maior);
System.out.println("Ano de maior produção="+anomaior);

                              break;
                              
                            case 0:
                              JOptionPane.showMessageDialog(null, "Fechando aplicação.", JOptionPane.WARNING_MESSAGE);
                        System.exit(0); //encerra a aplicação
                break;      
                          }
   }
}
}
}
aparecem os seguintes erros:

Error: case 5 orphaned case
Error: case 0 orphaned case

Desculpem essas perguntas tolas de iniciantes...maaas fazer oq ne =\

5 Respostas

T

Use um editor de texto ou uma IDE decente que indente (reformate) seu código, e você vai ver que há chaves faltando ou sobrando em algum lugar.
(Onde é que elas estão faltando ou sobrando? Isso fica por sua conta. )
Não se esqueça: todo “case” precisa de estar dentro de uma chave que começa por “switch”:

switch (valor) {
case 0:
    break;
case 1:
    break;
...
default:
    break;
}
Gabriel_Davi

Ahh valeu =D

eu to usando o DrJava…começando…
qual vc indica !?
eu “apanhei” um pouco do netbeans por ser mto iniciante

T

Peça para alguém lhe ajudar a instalar o Eclipse ou o NetBeans. No mundo profissional são essas as ferramentas mais usadas.

Não conheço os recursos desses editores mais simples, como o DrJava (de que nunca havia ouvido falar), mas o Gel (embora seja muito antigo) tem essa parte de “auto-indent”.

http://www.gexperts.com/gel.html

Gabriel_Davi

Valeu =D

Bom, agora meu código compilou certinho, porém não aparece o menu =\

// Programa que manipula uma tabela de cereais
 import javax.swing.JOptionPane;
 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;
   int escolha;
   maior = 0;
   anomaior= 0;
   escolha=-1;
   String entrada;
   
   // 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];
       }
     }
 
 while(escolha!=0)
 {
 String parametro = JOptionPane.showInputDialog(null,"Menu de opções:\n"+
                                                        "[1]Impressão dos nomes e respectivas produções\n"+
                                                        "[2]Impressão dos anos e respectivas produções\n"+
                                                        "[3]Localizar produção anual de um determinado ano\n"+
                                                        "[4]Imprimir produção anual de um cereal\n"+
                                                        "[5]Imprimir o ano de maior produção de um cereal\n"+
                                                        "[0]Encerrar programa",JOptionPane.QUESTION_MESSAGE);
    
 
 escolha = Integer.parseInt(parametro);  //transforma uma String em um int (inteiro)
 
    switch(escolha)
    { case 1: 
     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();}
     }
                      break;
                      
        case 2: 
        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]);
        }
       break;
       
      case 3 :    
        System.out.println("Entre com o ano cuja produção anual deseja obter");
       anoQ= EasyIn.getInt();
       ano[4]= anoQ;
       pos = 0;
      while(anoQ!=ano[pos]) 
       {pos= pos+1;}
       if(pos==4)
       { System.out.println("Ano não encontrado");}
         else{System.out.println("Produção Anual="+prodanual[pos]);
         }
                         
      break;
      
      case 4: 
           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]);}}
                             
                             break;
                             
    case 5: 
                                     
         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{
                 for(j=0;j<n;j++)
                if
                  (prod[pos][j]>maior)
                { maior= prod[pos][j];
                  anomaior=ano[j];
                }
                }
 System.out.println("Maior produção="+maior);
 System.out.println("Ano de maior produção="+anomaior);
 
                               break;
                               
                             case 0:
                               JOptionPane.showMessageDialog(null, "Fechando aplicação.");
                         System.exit(0); //encerra a aplicação
                 break;      
                           }
    }
 } }
Gabriel_Davi

da um help ae gente…preciso disso pra hoje =\

Criado 23 de maio de 2007
Ultima resposta 24 de mai. de 2007
Respostas 5
Participantes 2