Erro com switch case

6 respostas
AlanLojudice

E aee blz?

Estou tentando fazer um switch case aqui. Mas esta dando esse seguinte erro.
“Syntax error, insert “AssignmentOperator Expression” to complete expression”. O linha vermelha fica no COMPLETA, FECHADA e EMATENDIMENTO. Alguem sabe o que é esse erro??

int statusParaComparar; switch ( statusParaComparar ) { case 1: Ocorrencia.COMPLETA; break; case 2: Ocorrencia.FECHADA; break; case 3: ocorrencia.EMATENDIMENTO; break; }

Valeuu

6 Respostas

LPJava

kd o valor da variavel de teste? é local? se for local ela ta sem valor… ja que variaveis locais nao tem valor faça isso:

1. int statusParaComparar=1;     
   2. switch ( statusParaComparar )   
   3. {   
   4.            case 1: Ocorrencia.COMPLETA;   
   5.            break;   
   6.            case 2: Ocorrencia.FECHADA;   
   7.            break;         
   8.            case 3: ocorrencia.EMATENDIMENTO;   
   9.            break;  
  10. }

veja agora :smiley:

AlanLojudice

O problema não é esse nal LPJava. Eu ja tinha tentado isso. Ele continua dando o mesmo erro.
Mesmo se eu nao usar o switch, usar o if, ele da esse erro. “Syntax error, insert “AssignmentOperator Expression” to complete expression”.

alguem tem ideia do que seja isso??

[]'s

AlanLojudice

Vou passar pra vcs o metodo pra ve se fica mais facil de vcs entenderem.
Antes eu tinha apenas dois status no meu programa. Mas surgiu mais um entao o if que eu fazia antes para filtrar nao estava resolvendo meu problema, ai estou tentando fazer de outra maneira mas nao esta funcionando.

public ActionForward filtraPorStatuseAreaAtuacao(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception, PrincipiaException {    
	
	// ----------------
	request.setAttribute("listaDeAreasDeAtuacao", carregarListaDeAreasDeAtuacao());
	List listaOcorrencias = AtendimentoFacadeImpl.getInstance().getListaOcorrencias();
	ListarTodasOcorrenciasForm formReal = (ListarTodasOcorrenciasForm) form;
	
	List novaListaFiltrada = new ArrayList();
	for (int i = 0; i < listaOcorrencias.size(); i++) {	    
	    Ocorrencia ocorrencia = (Ocorrencia) listaOcorrencias.get(i);
	    String oidAreaDeAtuacaoDaOcorrencia = getOidDaAreaDeAtuacaoSelecionada(ocorrencia);
	    String parameter = request.getParameter("status");	
	    int statusParaComparar=0;	    // = parameter.equals("aberto") ? Ocorrencia.COMPLETA : Ocorrencia.FECHADA;[b] Esse era o if de antes[/b]
	    
	    switch ( statusParaComparar ) 
	    { 
                case 1: Ocorrencia.COMPLETA; 
                break; 
                case 2: Ocorrencia.FECHADA; 
                break;	    
                case 3: ocorrencia.EMATENDIMENTO; 
                break;
	    } 

	   if (ocorrencia.getStatus() == statusParaComparar && oidAreaDeAtuacaoDaOcorrencia.equals(formReal.getOidAreaDeAtuacao())  ) {
		novaListaFiltrada.add(ocorrencia);
	   }   
	}

	request.getSession().setAttribute("listaOcorrencias", novaListaFiltrada);
	
	// ----------------
	return mapping.findForward("mesmaPagina");
    }
hashcode

O compilador está te dizendo “Atribua o valor em a uma expressão ou execute algo”. Vc tá pegando o valor e só.
Tenta

int myvalue=0;
switch ( statusParaComparar )   
     {   
               case 1: myvalue=Ocorrencia.COMPLETA;   
                break;   
                case 2: myvalue=Ocorrencia.FECHADA;   
                break;         
                case 3: myvalue=ocorrencia.EMATENDIMENTO;   
                break;  
     }
AlanLojudice

Ow. valeu velho…Era isso mesmo…

[]'s

LPJava

viuxe vacilo meu uhahuuhauha esqueci desse detalhe!!

Criado 11 de outubro de 2007
Ultima resposta 11 de out. de 2007
Respostas 6
Participantes 3