Ajuda ai Iniciante Java!

Ajuda ai ele ta dando erro na chaves { e nos breaks tiro os break fica o erro na chave.
Faz mais de hora e nao sei onte ta o erro ajuda ai!

import java.io.*;
public class Metodo11 {

        static double num1, num2;
        static int opc;

        public static void main (String args[]) {

        DataInputStream dado;
        try{
        System.out.print("Digite 1º numero: ");
        dado= new DataInputStream(System.in);
        num1 = Double.parseDouble(dado.readLine());

        System.out.print("Digite 2º numero: ");
        num2 = Double.parseDouble(dado.readLine());
        menu();
        opc = Integer.parseInt(dado.readLine());
        //double resul = resultado(num1, num2, opc);
        System.out.println(resultado(num1, num2, opc));
        }
        catch(IOException e){}
        }
        public static void menu() {
            System.out.print("1 Para somar");
            System.out.print("2 Para subtrair");
            System.out.print("3 Para Dividir");
            System.out.print("4 Para Multiplicar");

        }
        public static double resultado(double numero1, double numero2, int opcao) {
        double resul=0;
            switch(opcao) {
                case 1 : {
                    resul = numero1+numero2;
                    return resul;
                    break;
                }
                case 2 : {
                    resul = numero1-numero2;
                    return resul;
                    break;
                }
                case 3 : {
                    resul = numero1/numero2;
                    return resul;
                    break;
                }
                case 4 :  {
                    resul = numero1*numero2;
                    return resul;
                    break;
                }

            }
        }
}

case não tem chaves .-."

switch (variavel){
   case valor1:
       codigo;
       break;
   case valor2:
       codigo;
       break;
   default:
       codigo;
}

default seria o “Else” (caso nenhum break fosse encontrado)
no default, não precisa do break

edit:
talvez o problema seja o return, tá mal colocado:

     double resul=0;   
            switch(opcao) {   
                case 1 :
                    resul = numero1+numero2;   
                    break;
                case 2 :
                    resul = numero1-numero2;    
                    break;
                case 3 : 
                    resul = numero1/numero2;   
                    break;
                case 4 :
                    resul = numero1*numero2;   
                    break;
            }
            return resul;

lembrando também que o switch só opera em inteiros e chars .

Outra coisa, idente melhor seu código… Dentro do “try” saltar uns espaços facilitam a melhor visualização do código.

[quote=d34d_d3v1l]lembrando também que o switch só opera em inteiros e chars .

Outra coisa, idente melhor seu código… Dentro do “try” saltar uns espaços facilitam a melhor visualização do código.[/quote]

não sei se tá falando do operador do cara aí, porque o dele tá com inteiro sim
a variável opcao é inteiro, e os valores dentro dos blocos cases é que são reais

Flw ai Mephy.
Sua segunda dica deu certo vlw ai cara.

outra coisa, sempre que puxar métodos que tem esse traço cortando o nome ao meio, significa que está obsoleto, ja possui um mais novo que este, então tente usar outro.
Abraços.

Outra coisa, que foi dado com dica logo acima, para identar seu código, no netbeans é crtl + shift + f, no eclipse se não me engano é crtl + i.
Abraços. Lucas.

case pode ter chaves sim, assim como em um if que contém várias linhas de comando dentro
também o mesmo poder ser feito com case :

[code]switch(var) {
case 1:{
comando 1;
comando 2;

                           comando n;
                           break;

                          }

               case 2: comando x;
                           break;
           
               case 3: comando y;
                           break;

               default:
                          System.out.println("Nenhuma opção satisfatória");

}
[/code]

Default pega qualquer resultado que não esteja definido no case. Ou seja, ele é o bloco de código padrão que deve ser executado quando nenhum case for satisfeito.

Até onde eu lembro, case não leva chave, só tem chave na abertura do switch.

case[color=red] pode[/color] ter chaves sim, …

Chave definem blocos de comando. Podem ser abertos a qualquer momento dentro do método:

public void foo(){
  int x = 0;

  {
    x += 20 + 30 / 15 * 80;
    x += 40 / 5 + 8;
  }
}

Obrigado rmendes08 era exatamente isso que estava querendo dizer além da definição
dos blocos de comandos há também a questão do escopo das variáveis, enfim …

É verdade gente, tinha me esquecido que pode abrir, desculpem o erro.