Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
RorschachVII

Java imprimir dando loop java

Recommended Posts

Boa noite! Quando tento imprimir no case 2 no último while fica dando loop. Alguém consegue resolver?

package projeto;

import java.util.Scanner;

public class Listas {

    private static class Lista {
        public int num;
        public Lista prox;
        public Lista ant;
    }

    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);

        Lista inicio = null;
        Lista fim = null;
        Lista aux;
        Lista menor;

        int op;

        do {
            System.out.println("\nMenu de Opções\n");
            System.out.println("1- Inserir");
            System.out.println("2- Mover menor");
            System.out.println("3- Sair");
            System.out.println("Digite a sua opção:");
            op = entrada.nextInt();

            Lista novo;

            switch (op) {
            case 1:

                System.out.println("Digite um número:");
                novo = new Lista();
                novo.num = entrada.nextInt();

                if (inicio == null) {
                    inicio = novo;
                    fim = novo;
                    novo.prox = null;
                    novo.ant = null;
                } else {
                    novo.prox = inicio;
                    inicio.ant = novo;
                    novo.ant = null;
                    inicio = novo;
                }
                System.out.println("\nNúmero inserido. Cosultando lista:");
                aux = inicio;
                while (aux != null) {
                    System.out.print(aux.num + " -> ");
                    aux = aux.prox;
                }
                System.out.println("null");

                break;
            case 2:
                aux = inicio;
                if (inicio == null) {
                    System.out.println("Lista vazia");
                    break;
                }else{
                    menor = inicio;
                }
                menor = inicio;
                while (aux != null) {
                    if (aux.num < menor.num) {
                        menor = aux;
                    }
                    aux = aux.prox;
                }
                while (menor.ant != null) {
                    if (menor.ant != null) {
                        menor.ant.prox = menor.prox;
                        menor.prox = menor.ant;
                    }
                    if (menor.ant.ant != null) {
                        menor.ant.ant.prox = menor;
                        menor.ant = menor.ant.ant;
                        menor.prox.ant = menor;
                    }
                    if (menor == fim) {
                        fim = menor.prox;
                    }
                    while (aux != null) {
                        System.out.print(aux.prox + " -> ");
                        aux = aux.prox;
                    }
                    System.out.println("null");
                }

                break;

            case 3:
                System.exit(0);
                break;
            default:
                System.out.println("Opção inválida!");
                break;
            }

        } while (op != 3);
        entrada.close();
    }
}

 

Editado por DiF
Inserir o código usando o botão CODE <>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×