1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Problema com o Switch Case.

Pessoal o erro é seguintte o "case 2:", "case 3:", esta com o erro de 'orphaned case', ja verifiquei se é as chaves mas não é. alguem pode analisar o código abaixo.

public static void main(String[] args) throws IOException {

        System.out.println("######## ARQUIVO TXT #########");

        System.out.println("");

        /* local do arquivo */

        File arquivo = new File("arquivo.txt");

        StringBuilder conteudo = new StringBuilder();

        BufferedReader reader;

        try {

            reader = new BufferedReader(new FileReader(arquivo));

            String text;

            // repete enquanto existir linhas

            while ((text = reader.readLine()) != null) {

                conteudo.append(text).append(System.getProperty("line.separator"));

            }

            System.out.println(conteudo.toString());

            reader.close();

        } catch (FileNotFoundException e) {

            System.out.println("Arquivo não encontrado!");

        } catch (IOException e) {

            System.out.println("Falha ao tentar ler arquivo! " + e.getMessage());

        }

        System.out.println("#############################################################");

        System.out.println("");

        /* armazenar o arquivo em arrayList */

        List<String[]> lista = new ArrayList<>();

        FileReader ent = new FileReader("arquivo.txt");

        BufferedReader br = new BufferedReader(ent);

        String linha;

        while ((linha = br.readLine()) != null) {

            String[] registro = linha.split(" ");

            lista.add(registro);

            Scanner entrada = new Scanner(System.in);

            // Menu

            int opção;

            System.out.println("============================");

            System.out.println("|          MENU            |");

            System.out.println("============================");

            System.out.println(" 1 Bubble Sort  ");

            System.out.println(" 2 Selection Sort  ");

            System.out.println(" 3 Insertion Sort  ");

            System.out.println("============================");

            System.out.print("Escolha sua Opção: ");

            opção = entrada.nextInt();

            switch (opção) {

                case 1:

                    // Ordenação

                    long tempoInicial = System.currentTimeMillis();

                    for (int i = 0; i <= registro.length; i++) {

                        for (int c = i + 1; c < registro.length; c++) {

                            int compareTo = registro[i].compareTo(registro[c]);

                            if (compareTo > 0) {


                            }

                            String temp = registro[i];

                            registro[i] = registro[c];

                            registro[c] = temp;

                        }

                    }

            }

            for (String string : registro) {

                for (String valor : registro) {

                    System.out.println(valor);

                }

            }

            long tempoFinal = System.currentTimeMillis();

            System.out.print("TEMPO DE EXECUÇÃO DO BUBLLE SORT:");

            long tempoInicial = 0;

            System.out.printf("%.3f ms%n", (tempoFinal - tempoInicial) / 1000d);

            break;



case 2:

                        for (int i = 0; i < registro.length; i++) {

                        int iMenor = i;

                        for (int j = 0; j < registro.length; j++) {

                            if (registro[j] < registro[iMenor]) {

                                iMenor = j;

                            }

                            int iMaior = 0;

                            if (iMenor != iMaior) {

                               String temp = registro[i];

                                registro[i] = registro[iMenor];

                                registro[iMenor] = temp;

                            }

                        }

                        for (String string : registro) {

                            for (String valor : registro) {

                                System.out.println(valor);
                            }

                        }


                    break;

                case 3:

                 long tempoStart = System.currentTimeMillis();

                        for (int i = 1; i < registro.length; i++) {

                        String a = registro[i];

                  for (int j = i - 1; j >= 0 && registro[j].compareToIgnoreCase(a) > 0; j--) {

                            registro[j + 1] = registro[j];

                            registro[j] = a;
                        }

                    }
                    for (String string : registro) {

                        for (String valor : registro) {

                            System.out.println(valor);
                        }

                    }
                     long tempoEnd= System.currentTimeMillis();

                    System.out.println("TEXTO ORDENADO COM SUCESSO !");

                    System.out.print("TEMPO DE EXECUÇÃO DO INSERTION SORT:");

                    System.out.printf("%.3f ms%n", (tempoEnd - tempoStart) / 1000d);

                break;

        }

        }

    }

}
  • Ivan, no momento eu estou sem um compilador java, mas parece ter um fecha-chaves a mais no case 1. Tem 3 fecha-cheaves antes da linha 'for (String string : registro) {'

    Felipe Pinto da Silva   10 de mai de 2014
  • vc esta certo tirei aquela chave q vc disse e funcionou, mas tá ocorrendo outro erro na hora que impemi na tela o texto ordenado e repete três vezes...?

    Ivan Alves   10 de mai de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java orientação-a-objetos ou faça a sua própria pergunta.