Inicio de Expressão Ilegal

Oi pessoal,

Preciso de ajuda para algo que já funcionava bem e agora com mais testes de validação passou a dar os seguintes erros e mais embaixo estão as linhs de código…

javac Jce.java
Jce.java:975: illegal start of expression
		   if (opa >= TOTCOAL1) && (opaa >= TOTCOAL2) && (difA >= TOTCOAL3) && 
		                        ^
Jce.java:978: not a statement
		      (auxSomaB >= TOT12) && (soma_opbdifB >= TOT13) && (soma_opbbdifB >= TOT23) {
		                                                     ^
Jce.java:978: ';' expected
		      (auxSomaB >= TOT12) && (soma_opbdifB >= TOT13) && (soma_opbbdifB >= TOT23) {
		                                                                                ^
Jce.java:982: 'else' without 'if'
		   	else {
		   	^
Jce.java:986: illegal start of expression
		   if (opc >= TOTCOAL1) && (opcc >= TOTCOAL2) && (difC >= TOTCOAL3) &&
		                        ^
Jce.java:989: not a statement
                      (auxSomaD >= TOT12) && (soma_opddifD >= TOT13) && (soma_opdddifD >= TOT23) {
                                                                     ^
Jce.java:989: ';' expected
                      (auxSomaD >= TOT12) && (soma_opddifD >= TOT13) && (soma_opdddifD >= TOT23) {
                                                                                                ^
Jce.java:993: 'else' without 'if'
		      else { 
		      ^
Jce.java:996: illegal start of expression
		   if (ope >= TOTCOAL1) && (opee >= TOTCOAL2) && (difE >= TOTCOAL3) &&
		                        ^
Jce.java:999: not a statement
                      (auxSomaF >= TOT12) && (soma_opfdifF >= TOT13) && (soma_opffdifF >= TOT23) {
                                                                     ^
Jce.java:999: ';' expected
                      (auxSomaF >= TOT12) && (soma_opfdifF >= TOT13) && (soma_opffdifF >= TOT23) {
                                                                                                ^
Jce.java:1003: 'else' without 'if'
		      else { 
	      ^

Vou por somente as partes de interesse pq o pgm é muito extenso e às vezes tem gente que reclama de colocar todo código…

if (src == brodajogo) {

			Font negrito = new Font("SansSerif", Font.BOLD, 14);

			JTextArea outputArea = new JTextArea(5, 20);

			JScrollPane scroller = new JScrollPane(outputArea);

			String output3 = "";

		   if (opa >= TOTCOAL1) && (opaa >= TOTCOAL2) && (difA >= TOTCOAL3) && 

		      (auxSomaA >= TOT12) && (soma_opadifA >= TOT13) && (soma_opaadifA >= TOT23) &&

		      (opb >= TOTCOAL1) && (opbb >= TOTCOAL2) && (difB >= TOTCOAL3) &&

		      (auxSomaB >= TOT12) && (soma_opbdifB >= TOT13) && (soma_opbbdifB >= TOT23) {

		   
				output3 = "Imputacao Estavel  para a Coalizao {1,2} ";

		   	} 

		   	else {

				output3 = "Imputacao Instavel para a Coalizao {1,2} ";

		   	}

		   if (opc >= TOTCOAL1) && (opcc >= TOTCOAL2) && (difC >= TOTCOAL3) &&

                      (auxSomaC >= TOT12) && (soma_opcdifC >= TOT13) && (soma_opccdifC >= TOT23) &&

                      (opd >= TOTCOAL1) && (opdd >= TOTCOAL2) && (difD >= TOTCOAL3) &&

                      (auxSomaD >= TOT12) && (soma_opddifD >= TOT13) && (soma_opdddifD >= TOT23) {

				output3 += "\nImputacao Estavel  para a Coalizao {1,3} ";

		      }

		      else { 

				output3 += "\nImputacao Instavel para a Coalizao {1,3} ";

		      }

		   if (ope >= TOTCOAL1) && (opee >= TOTCOAL2) && (difE >= TOTCOAL3) &&

                      (auxSomaE >= TOT12) && (soma_opedifE >= TOT13) && (soma_opeedifE >= TOT23) &&

                      (opf >= TOTCOAL1) && (opff >= TOTCOAL2) && (difF >= TOTCOAL3) &&

                      (auxSomaF >= TOT12) && (soma_opfdifF >= TOT13) && (soma_opffdifF >= TOT23) {

				output3 += "\nImputacao Estavel  para a Coalizao {2,3} ";

		      }

		      else { 

				output3 += "\nImputacao Instavel para a Coalizao {2,3} ";

		      } 

                   outputArea.setFont(negrito);
		   outputArea.setText(output3);
		   JOptionPane.showMessageDialog(null, outputArea, "Resultados do Jogo", JOptionPane.INFORMATION_MESSAGE);

		return;

		}

Olha, todas essas variaveis estão declaradas abaixo do cabeçalho da Classe lá em cima e as constantes estão dentro do actionPerformed para o botão de comando brodajogo

Não sei que erro é esse pq não falta ; nenhum nos ifs e tb creio que as comparações tb estão de bom tamanho que até li no guj que para comparar numeros tudo bem com >=!!!
Help, esse erro não estava dando anteriormente com menor qtdade de variaveis!
obrigada!

Cara, o problema ta realmente na expressão.

Do jetio q tu ta usando ta dando erro de sintaxe.
Imagine uma expressão matemática. O seu if é como uma expressão matemática aberta, que não ta fechada, algo como:

X = [(1+1) - (2+2);

Acontece que a sintaxe do IF é “if()”. Então, todas as condicionais têm q estar dentro desses parenteses.
Então, ou vc faz X = [b][/b - (2+2)] ou faz X = (1+1) - (2+2).
Deu pra entender?

Então:

  • tira esse monte de parenteses entres os &&;
if  (opa >= TOTCOAL1 && opaa >= TOTCOAL2 && difA >= TOTCOAL3 && auxSomaA >= TOT12
&& soma_opadifA >= TOT13 && soma_opaadifA >= TOT23 && 
opb >= TOTCOAL1 && opbb >= TOTCOAL2 && difB >= TOTCOAL3 && 
auxSomaB >= TOT12 && soma_opbdifB >= TOT13 && soma_opbbdifB >= TOT23) {  
//(...)   
             }   

ou

  • coloca um parenteses no início e outro fechando no fim.
if  ((opa >= TOTCOAL1) && (opaa >= TOTCOAL2) && (difA >= TOTCOAL3) && (auxSomaA >= TOT12)
&& (soma_opadifA >= TOT13) && (soma_opaadifA >= TOT23) && 
(opb >= TOTCOAL1) && (opbb >= TOTCOAL2) && (difB >= TOTCOAL3) && 
(auxSomaB >= TOT12) && (soma_opbdifB >= TOT13) && (soma_opbbdifB >= TOT23)) {  
//(...)   
             }   

Só uma sugestão: não coloque tantas condicionais assim no if. É mais legível vc criar um método q faça essa validação e retorne p o IF somente o vlaor booleano final da expressão.

Abrços

É cara tu tem razão… eu até tinha feito algo assim mas o melhor vai ser criar um metodo e validar com uma variavel booleana…
muito obrigada
[Resolvido]

[quote=rzanebr]Oi pessoal,

Preciso de ajuda para algo que já funcionava bem e agora com mais testes de validação passou a dar os seguintes erros e mais embaixo estão as linhs de código…

javac Jce.java
Jce.java:975: illegal start of expression
		   if (opa >= TOTCOAL1) && (opaa >= TOTCOAL2) && (difA >= TOTCOAL3) && 
		                        ^
Jce.java:978: not a statement
		      (auxSomaB >= TOT12) && (soma_opbdifB >= TOT13) && (soma_opbbdifB >= TOT23) {
		                                                     ^
Jce.java:978: ';' expected
		      (auxSomaB >= TOT12) && (soma_opbdifB >= TOT13) && (soma_opbbdifB >= TOT23) {
		                                                                                ^
Jce.java:982: 'else' without 'if'
		   	else {
		   	^
Jce.java:986: illegal start of expression
		   if (opc >= TOTCOAL1) && (opcc >= TOTCOAL2) && (difC >= TOTCOAL3) &&
		                        ^
Jce.java:989: not a statement
                      (auxSomaD >= TOT12) && (soma_opddifD >= TOT13) && (soma_opdddifD >= TOT23) {
                                                                     ^
Jce.java:989: ';' expected
                      (auxSomaD >= TOT12) && (soma_opddifD >= TOT13) && (soma_opdddifD >= TOT23) {
                                                                                                ^
Jce.java:993: 'else' without 'if'
		      else { 
		      ^
Jce.java:996: illegal start of expression
		   if (ope >= TOTCOAL1) && (opee >= TOTCOAL2) && (difE >= TOTCOAL3) &&
		                        ^
Jce.java:999: not a statement
                      (auxSomaF >= TOT12) && (soma_opfdifF >= TOT13) && (soma_opffdifF >= TOT23) {
                                                                     ^
Jce.java:999: ';' expected
                      (auxSomaF >= TOT12) && (soma_opfdifF >= TOT13) && (soma_opffdifF >= TOT23) {
                                                                                                ^
Jce.java:1003: 'else' without 'if'
		      else { 
	      ^

Vou por somente as partes de interesse pq o pgm é muito extenso e às vezes tem gente que reclama de colocar todo código…

if (src == brodajogo) {

			Font negrito = new Font("SansSerif", Font.BOLD, 14);

			JTextArea outputArea = new JTextArea(5, 20);

			JScrollPane scroller = new JScrollPane(outputArea);

			String output3 = "";

		   if (opa >= TOTCOAL1) && (opaa >= TOTCOAL2) && (difA >= TOTCOAL3) && 

		      (auxSomaA >= TOT12) && (soma_opadifA >= TOT13) && (soma_opaadifA >= TOT23) &&

		      (opb >= TOTCOAL1) && (opbb >= TOTCOAL2) && (difB >= TOTCOAL3) &&

		      (auxSomaB >= TOT12) && (soma_opbdifB >= TOT13) && (soma_opbbdifB >= TOT23) {

		   
				output3 = "Imputacao Estavel  para a Coalizao {1,2} ";

		   	} 

		   	else {

				output3 = "Imputacao Instavel para a Coalizao {1,2} ";

		   	}

		   if (opc >= TOTCOAL1) && (opcc >= TOTCOAL2) && (difC >= TOTCOAL3) &&

                      (auxSomaC >= TOT12) && (soma_opcdifC >= TOT13) && (soma_opccdifC >= TOT23) &&

                      (opd >= TOTCOAL1) && (opdd >= TOTCOAL2) && (difD >= TOTCOAL3) &&

                      (auxSomaD >= TOT12) && (soma_opddifD >= TOT13) && (soma_opdddifD >= TOT23) {

				output3 += "\nImputacao Estavel  para a Coalizao {1,3} ";

		      }

		      else { 

				output3 += "\nImputacao Instavel para a Coalizao {1,3} ";

		      }

		   if (ope >= TOTCOAL1) && (opee >= TOTCOAL2) && (difE >= TOTCOAL3) &&

                      (auxSomaE >= TOT12) && (soma_opedifE >= TOT13) && (soma_opeedifE >= TOT23) &&

                      (opf >= TOTCOAL1) && (opff >= TOTCOAL2) && (difF >= TOTCOAL3) &&

                      (auxSomaF >= TOT12) && (soma_opfdifF >= TOT13) && (soma_opffdifF >= TOT23) {

				output3 += "\nImputacao Estavel  para a Coalizao {2,3} ";

		      }

		      else { 

				output3 += "\nImputacao Instavel para a Coalizao {2,3} ";

		      } 

                   outputArea.setFont(negrito);
		   outputArea.setText(output3);
		   JOptionPane.showMessageDialog(null, outputArea, "Resultados do Jogo", JOptionPane.INFORMATION_MESSAGE);

		return;

		}

Olha, todas essas variaveis estão declaradas abaixo do cabeçalho da Classe lá em cima e as constantes estão dentro do actionPerformed para o botão de comando brodajogo

Não sei que erro é esse pq não falta ; nenhum nos ifs e tb creio que as comparações tb estão de bom tamanho que até li no guj que para comparar numeros tudo bem com >=!!!
Help, esse erro não estava dando anteriormente com menor qtdade de variaveis!
obrigada![/quote]

Valeu por hora está o acerto dos parenteses e das variáveis… agora vou tentar fazer um metodo para tratar depois com uma boolean…
Guj … muito bom!
valeu!