Dúvida.... [Resolvido]

6 respostas
FranciscoCoelho

Olá GUJnaltas, estou começando com java não faz muito tempo, com isso algumas dúvidas surgem e precisamos de ajudar de que domina um pouco mais. O que esta acontecendo é que sempre o resultado deste pequenino aplicativo é "Opção Invalida".
Mesmo eu passando opções que existem, o resultado é sempre o mesmo.

Desde ja agradeço aos amigos(as) que poderiam me ajudar....

Abraçossss

import java.util.Scanner;

public class Caracteres {
	
	public static void main(String[] args) {
		
		Scanner Input = new Scanner(System.in);
		
		String opcao;
		
		System.out.print("\nInforme Opção: ");
		opcao = Input.next();
		
		if(opcao == "A" || opcao == "a"){

			System.out.println("Opção de Alteração");
		}
		else if(opcao == "C" || opcao == "c"){
			
			System.out.println("Opção de Consulta");
		}
		else if(opcao == "E" || opcao == "e"){
			
			System.out.println("Opção de Exclusão");
		}
		else if(opcao == "I" || opcao == "i"){
			
			System.out.println("Opção de Inclusão");
		}
		else if(opcao == "F" || opcao == "f"){
			
			System.out.println("Opção de Finalização");
		}
		else{
			
			System.out.println("Opção Inválida");
		}
	}
}

6 Respostas

G

usa switch que nem na estrutura abaixo

public class ExemploSwitch { public static void main(String args[]) { int diaDaSemana = 1; switch (diaDaSemana) { case 1: System.out.println("Domingo"); break; case 2: System.out.println("Segunda-feira"); break; case 3: System.out.println("Terça-feira"); break; case 4: System.out.println("Quarta-feira"); break; case 5: System.out.println("Quinta-feira"); break; case 6: System.out.println("Sexta-feira"); break; case 7: System.out.println("Sábado"); break; default: System.out.println("Este não é um dia válido!"); } } }

pedroroxd

Nem precisa usar o switch não... Ainda mais pq é string, e não número....
[size=16]Para de usar o maldito "==".[/size]
Utilize .equals..

Seu código ficará assim:
Scanner Input = new Scanner(System.in);

         String opcao;

         System.out.print("\nInforme Opção: ");
         opcao = Input.next();

         if(opcao.equals("A") || opcao.equals("a")){ //.equals é a maneira "Correta" de comparar strings... Não utilize o "=="

             System.out.println("Opção de Alteração");
         }
         else if(opcao.equals("C") || opcao.equals("c")){

             System.out.println("Opção de Consulta");
         }
         else if(opcao.equals("E") || opcao.equals("e")){

             System.out.println("Opção de Exclusão");
         }
         else if(opcao.equals("I") || opcao.equals("i")){

             System.out.println("Opção de Inclusão");
         }
         else if(opcao.equals("F") || opcao.equals("f")){

             System.out.println("Opção de Finalização");
         }
         else{

             System.out.println("Opção Inválida");
         }
E
FranciscoCoelho:
if(opcao == "A" || opcao == "a"){

			System.out.println("Opção de Alteração");
		}
		else if(opcao == "C" || opcao == "c"){

Troque "==" por "equals". No seu caso (em que "A" é a mesma coisa que "a"), use equalsIgnoreCase.

Por exemplo,
if("A".equalsIgnoreCase (opcao)){

			System.out.println("Opção de Alteração");
		}
		else if("C".equalsIgnoreCase (opcao)){
			.......
nel

O switch pode ser uma opção sim, mas ai vai uma dica amigo.
Quando quiseres usar if-else para comparação de strings, utilize o equals.

Exemplos:

String s = "teste";
String s1 = "teste";

//retorna true caso seja igual
if(s.equals(s1));
   System.out.println("Iguais");

Agora vamos supor da seguinte forma:

String s = "teste";
String s1 = "TesTE";

//voce quer ignorar o case sensitive, então:
if(s.equalsIgnoreCase(s1))
   System.out.println("Iguais, foi ignorado o case sensitive");

Caso queira removar algum possível espaço em branco na frente ou atrás da string podes usar o trim().
Exemplo:

String s = " teste";
String s1 = "teste";

//se nao usar o trim o resultado será false
if(s.trim().equals(s1))
   System.out.println("Ok");

Espero ter ajudado, Abraços! :D

pedroroxd

hehe…
Se seu caso for resolvido, acrescente [RESOLVIDO] ao título do primeiro post…

pmlm

Usa o switch sim e uma vez que é sempre só uma letra, usa char

char op  = opcao.charAt(0);

switch (op){

    case 'A':
    case 'a': System.out.println("Opção de Alteração");  
                 break;
    case 'C':
    case 'c': System.out.println("Opção de Consulta");  
                 break;
(...)
}
Criado 14 de outubro de 2009
Ultima resposta 14 de out. de 2009
Respostas 6
Participantes 6