1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[java - NetBeans] else without if

Discussão em 'Programação' iniciada por tseabra, 23 de Novembro de 2007. (Respostas: 21; Visualizações: 4144)

  1. Isto foi um main dado pelo prof para os alunos fazerem os métodos .

    Isto dá-me aqui uns erros nos else's que não compreendo .
    diz que não tem if's mas eles estão lá . :(

    'else' without 'if'


    e tambem isto nos métodos com Void :
    class, interface, or enum expected


    Código:
    
    import java.util.Scanner;
    public class Nomes {
        public static int inserirNome (String[]listaA, int elem, String nome){
            
            if (procurarNome(listaA,elem,nome)!=-1){
                    System.out.println("Nome já existe na Lista");
                    else {
                        elem+=1;
                        listaA[elem]=nome; 
                    }
            }
        }
        public static void alterarNome(String[]listaA, int elem, String nome, String novo) { 
            
            if (procurarNome(listaA,elem,nome)=-1){
                System.out.println("O nome não pode ser alterado porque não existe");
                else
                    listaA[procurarNome(listaA,elem,nome)]=novo;
            
            }
        } 
        public static int eliminarNome(String[]listaA, int elem, String nome) {
        
                if (procurarNome(listaA,elem,nome)=-1){
                    System.out.println("Nome não existe na Lista");
                    else 
                        listaA[procurarNome(listaA,elem,nome)]=""; 
                }
        }
        
        public static void procurarNome(String[]listaA, int elem, String nome) {
            boolean encontrou=false;
            int i=0;
            while( i<elem && !encontrou)
            {
                if( listaA[i] ==nome)
                    encontrou=true;
                else i++;
            }
            if (encontrou)
                return i;
            else return -1;
        } 
        
        public static void listarNomes(String[]listaA, int elem) { 
           
            if (elem>0) {
                out.format("Listagem de todos os nomes");
                for (int i=0; i>listaA.length; i++) {
                    System.out.println("Posição %i : %s", i,v[i]);
                }
           else
                System.out.println("Vector vazio");
           }
        }
    
        public static void main(String[] vs) { 
            String listaA[] = new String[10]; 
            int elems=0; 
            elems=inserirNome(listaA, elems,"Pedro");
            elems=inserirNome(listaA, elems,"Zé");  
            elems=inserirNome(listaA, elems,"Ana"); 
            if (alterarNome(listaA, elems,"Zé","José")) 
                System.out.println("Alteração fectuada");   
            elems=eliminarNome(listaA,elems,"Pedro");   
            listarNomes(listaA, elems); 
    } 
    
    }
    
    
    Se puderem ajudar agradeço . :)
     
  2. Madril

    Madril 1st Folding then Sex

    if (procurarNome(listaA,elem,nome)=-1){
    System.out.println("Nome não existe na Lista");
    else
    listaA[procurarNome(listaA,elem,nome)]="";
    }

    O problema tá ai ;)


    Edit, tira { desse if e passa a funcionar


    Edit2, Esse erro está repetido 3 vezes.
     
  3. PJTuga

    PJTuga Power Member

    Código:
    if (procurarNome(listaA,elem,nome)!=-1){
            System.out.println("Nome já existe na Lista");
             }
               else 
               {
                  elem+=1;
                  listaA[elem]=nome; 
               }
            }

    Quando tens apenas uma instrução dentro do if, nao precisas de usar {}


    Cumpz
     
  4. Obrrigado pela ajuda :D

    Mas neste Método continua a dar o erro mesmo depois de fazer isso . :s
    e depois isto propaga erros ao main . mas uma coisa de cada vez . :P

    Código:
    public static void listarNomes(String[]listaA, int elem) { 
           
            if (elem>0) {
                out.format("Listagem de todos os nomes");
                for (int i=0; i>listaA.length; i++){
                    System.out.println("Posição %i : %s", i,v[i]);}
           else
                System.out.println("Vector vazio");
            }
       }
    
     
  5. el_zeus

    el_zeus Power Member

    Tens uma } , assim já ta correcto
    Código:
      public static int inserirNome (String[]listaA, int elem, String nome){
            
            if (procurarNome(listaA,elem,nome)!=-1)
                    System.out.println("Nome já existe na Lista");
                    else {
                        elem+=1;
                        listaA[elem]=nome; 
                    }
            
        }
    
    Faltava fechar } no if (a seguir ao for)
    Código:
     public static void listarNomes(String[]listaA, int elem) { 
           
            if (elem>0) {
                out.format("Listagem de todos os nomes");
                for (int i=0; i>listaA.length; i++) {
                    System.out.println("Posição %i : %s", i,v[i]);
                }
            }
           else
                System.out.println("Vector vazio");
           }
        }
    
    Assim já ta correcto.


    E mais repara que procurarNome não devolve nada, contudo estás a usá-lo para acesso a um array .... no eliminarNome e alterarNome
     
  6. PJTuga

    PJTuga Power Member

    Código:
    public static void listarNomes(String[]listaA, int elem) { 
           
            if (elem>0) {
                out.format("Listagem de todos os nomes");
                for (int i=0; i>listaA.length; i++){
                    System.out.println("Posição %i : %s", i,v[i]);}
           [B] }[/B]
        else
                System.out.println("Vector vazio");
            
       }
    o teu problema é nao saberes onde por as {}

    Código:
    if condição {
           instruçoes
       }
    
    else {
            instruções
     }
    


    EDIT: eu tb tenho de fazer o mesmo exercicio... :D
    Mas só vou começar agora.
     
    Última edição: 23 de Novembro de 2007
  7. HecKel

    HecKel The WORM

    Como fazer if-elses em java:

    Código:
    if (condição)
       instru[B]ção[/B]; // olha o singular
    else
       instru[B]ção[/B]; // olha o singular
    Código:
    if (condição)
       instru[B]ção[/B]; // olha o singular
    else [COLOR=Red]{[/COLOR]
       instru[B]ções[/B]; // olha o plural
    [COLOR=Red]}[/COLOR]
    Código:
    if (condição) [COLOR=Red]{[/COLOR]
        instru[B]ções[/B]; // olha o plural
    [COLOR=Red]}[/COLOR] else 
       instru[B]ção[/B]; // olha o singular
    
    Código:
    if (condição) [COLOR=Red]{[/COLOR]
         instru[B]ções[/B]; // olha o plural
    [COLOR=Red]}[/COLOR] else [COLOR=Red]{[/COLOR]
        instru[B]ções[/B]; // olha o plural
    [COLOR=Red]}[/COLOR]
    Código:
    if (condição)
         instru[B]ção[/B]; // olha o singular e repara que não há else
    
    Código:
    if (condição) [COLOR=Red]{[/COLOR]
          instru[B]ções[/B]; // olha o plural e repara que não há else
    [COLOR=Red]}[/COLOR]

    E pronto..., tens aqui as combinações todas...
     
  8. el_zeus

    el_zeus Power Member

    Pessoalmente gosto de usar sempre as {} assim nunca me engano nem esqueço ;)
     
  9. Já está .

    Obrigado a todos pela ajuda .

    está aui a versão final:
    Código:
    import java.util.Scanner;
    public class Nomes {
        public static int inserirNome (String[]listaA, int elem, String nome){
            
            if (procurarNome(listaA,elem,nome)!=-1)
                    System.out.println("Nome já existe na Lista");
                    else {
                        elem+=1;
                        listaA[elem]=nome; 
                    }
        }
        public static boolean alterarNome(String[]listaA, int elem, String nome, String novo) { 
            boolean alterado=false;
            if (procurarNome(listaA,elem,nome)!=-1){
                listaA[procurarNome(listaA,elem,nome)]=novo;
                alterado=true;
            }
            else
                System.out.println("O nome não pode ser alterado porque não existe");
            return alterado;
        } 
        public static int eliminarNome(String[]listaA, int elem, String nome) {
        
                if (procurarNome(listaA,elem,nome)!=-1){
                        listaA[procurarNome(listaA,elem,nome)]=""; 
                        elem+=1;}
                    else 
                        System.out.println("Nome não existe na Lista");
                return elem;
        }
        
        public static int procurarNome(String[]listaA, int elem, String nome) {
            int encontrou=0;
            int i=0;
            for (i=0;i<listaA.length;i++)
                if( listaA[i] ==nome)
                    encontrou=1;
            if (encontrou>1)
                return i;
            else 
                return -1;
        } 
        
        public static void listarNomes(String[]listaA, int elem) { 
           
            if (elem>0) {
                System.out.println("Listagem de todos os nomes");
                for (int i=0; i>listaA.length; i++){
                    System.out.println(listaA[i]);
                }
            }
            else
                System.out.println("Vector vazio");
         }
       
    
        public static void main(String[] vs) { 
            String listaA[] = new String[10]; 
            int elems=0; 
            elems=inserirNome(listaA, elems,"Pedro");
            elems=inserirNome(listaA, elems,"Zé");  
            elems=inserirNome(listaA, elems,"Ana"); 
            if (alterarNome(listaA, elems,"Zé","José")) 
                System.out.println("Alteração fectuada");   
            elems=eliminarNome(listaA,elems,"Pedro");   
            listarNomes(listaA, elems); 
    } 
    }
    

    Agora o meu NetBeans dá isto :

    Código:
    init:
    deps-jar:
    Compiling 1 source file to C:\Users\xxxxx\Ex1Avalia3\build\classes
    C:\Users\tseabra\Ex1Avalia3\src\Nomes.java:11: missing return statement
        }
    1 error
    BUILD FAILED (total time: 0 seconds)
    
    o erro é a fechar o primeiro método !
     
  10. HecKel

    HecKel The WORM

    Convém leres as mensagens de erro também ;)

    Código:
    public static [COLOR=Red][B]int[/B][/COLOR] inserirNome (String[]listaA, int elem, String nome){
            
            if (procurarNome(listaA,elem,nome)!=-1)
                    System.out.println("Nome já existe na Lista");
                    else {
                        elem+=1;
                        listaA[elem]=nome; 
                    }
    }
    Onde é que tens o return neste função?
     
  11. theforbidden1

    theforbidden1 Banido

    Não consigo é porque é no teu trabalhinho de Aprog todos os métodos são static...
     
  12. Pois lá isso é verdade "missing return" .

    peço desculpa pela pergunta estupida . :P

    Muito obrigado a todos .

    E peço a quem entregar isto no ISEP que não faça cópia integral , lol
     
  13. PJTuga

    PJTuga Power Member

    Tens de fazer o return dos elem
     
  14. theforbidden1

    theforbidden1 Banido

    tens que fazer o elem+=1; depois das operações com o vector e não antes.
    E se bem me lembro tb era pedido para não deixares introduzir alem do tamanho do vector.

    e já agora o static remove porque não está ai a fazer nada. Não sei o porque é que vocês todos andam a usar métodos static. Já o teu colega que ajudei ainda hj a fazer isso tinha o mesmo vicio.
     
  15. theforbidden1

    theforbidden1 Banido

    Código:
            if (alterarNome(listaA, elems,"Zé","José")) 
                System.out.println("Alteração fectuada"); 
    Tas a ver esse if? quer dizer que esse método retorna 1 boolean e não é do tipo void como tu puses-te.
     


  16. Eu nesse método pus mesmo boolean ! :P
    tas a ver mal ... :D

    já o reply anterior agradeço a correcção . ;)
     
  17. theforbidden1

    theforbidden1 Banido

    No código que está lá em cima no primeiro post estava void.
     
  18. PJTuga

    PJTuga Power Member

    Porque é que fazes o import java.util.Scanner; se não o usas?
     
  19. theforbidden1

    theforbidden1 Banido

    nos programas que eles fazem nas aulas importaram e ele copiou ;)
    é isso e utilizar métodos static ;)
     
  20. Como ficou a versao final entao? xD

    Ja agr qual e a diferença entre ter static e n ter ?
     

Partilhar esta Página