Ir ao conteúdo

Posts recomendados

Postado

Alguém pode me ajudar?

Sou iniciante em programação e preciso fazer uma agenda de contatos com menu e para isso usei switch case, porém existe uma opção 'Listar' que o usuário digita o nome do contato e aparecem os dados dele, caso esse contato não esteja cadastrado, aparece uma mensagem dizendo 'Contato não cadastrado'. O problema é que o else que eu fiz, roda junto com o laço for e é printado várias vezes  na tela e eu não consegui reverter isso. Tentei usar um break, mas continua sendo printado várias vezes.

case "Consultar":
				
				System.out.println("Digite o nome para pesquisa: ");
				consulta = usuario.nextLine();
				
				
				
				for (int i = 0; i < 100; i++) {
					
					if (nome[i].equals(consulta)) {
						
						System.out.println("Nome: " +nome[i]);
						System.out.println("Email: " +email[i]);
						System.out.println("Telefone:" +telefone[i]);
						
					
						} else {
							System.out.println("Contato não cadastrado");
						}
				}
						
							
				
				
				break;
				

Alguém pode me ajudar?

Segue o trecho do código

Postado

O código parece correto, mas a sua lógica está um pouco estranha.

 

Tenta desse jeito e vê se resolve:

case "Consultar":
    boolean encontrou = false;
    
    System.out.println("Digite o nome para pesquisa: ");
    consulta = usuario.nextLine();

    // Percorre todos os nomes
    for (int i = 0; i < 100; i++) {
        if (nome[i].equals(consulta)) {
            System.out.println("Nome: " +nome[i]);
            System.out.println("Email: " +email[i]);
            System.out.println("Telefone:" +telefone[i]);
            
            encontrou = true;   // Flag para indicar se o nome foi encontrado
            break;              // Interrompe o FOR quando o nome for encontrado
        }
    }
    
    /*
    Se todos os nomes foram consultados e o nome não
    foi encontrado, então exibe a mensagem de aviso.
    */
    if (!encontrou) {
        System.out.println("Contato não cadastrado");
    }
break;      // Encerra o case

 

  • Curtir 1
  • Membro VIP
Postado

Outro exemplo:

case "Consultar":
    boolean encontrou = false; // Flag para indicar se o nome foi encontrado
    
    System.out.println("Digite o nome para pesquisa: ");
    consulta = usuario.nextLine();

    // Percorre todos os nomes
    for (int i = 0; i < 100; i++) {
        if (nome[i].equals(consulta)) {
            encontrou = true;   // Marca flag indicando que foi encontrado
            break;              // Interrompe o FOR quando o nome for encontrado
        }
    }
    
    /*
    Verifica o valor da flag
    */
    if (encontrou) {    
        System.out.println("Nome: " +nome[i]);
        System.out.println("Email: " +email[i]);
        System.out.println("Telefone:" +telefone[i]);
    }
    else {
        System.out.println("Contato não cadastrado");
    }
break;      // Encerra o case

 

Postado

@Simon Viegas Olá. Estou sem a IDE para o Java instalada aqui, mas vou arriscar igual

Com todo respeito, apenas uma correção no seu exemplo:

case "Consultar":
    boolean encontrou = false; // Flag para indicar se o nome foi encontrado
    int indice = 0;
    
    System.out.print("Digite o nome para pesquisa: ");
    consulta = usuario.next();
    
    // Percorre todos os nomes
    for (int i = 0; i < 100; i++) {
        if (nome[i].equals(consulta)) {
            indice = i;         // Guarda o índice do nome encontrado
            encontrou = true;   // Marca flag indicando que foi encontrado
            break;              // Interrompe o FOR quando o nome for encontrado
        }
    }
    
    /*
    Verifica o valor da flag
    */
    if (encontrou) {
        System.out.println("Nome: " + nome[indice]); 
        System.out.println("Email: " + email[indice]);
        System.out.println("Telefone:" + telefone[indice]);
    } else {
        System.out.println("Contato não cadastrado");
    }
    break;      // Encerra o case

Se estou errado podem me corrigir rs...

Formatei o PC e ainda não deu para instalar a IDE (Eclipse) para testar o código

Entendo que estamos todos aqui para aprender, então, desculpa a "cara de pau" :)

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...