Dúvida.... [Resolvido]

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

[code]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");
	}
}

}[/code]

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!"); } } }

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:

[code] 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");
     }[/code]

[quote=FranciscoCoelho]

[code] if(opcao == “A” || opcao == “a”){

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

[/code][/quote]

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

Por exemplo,

[code] if(“A”.equalsIgnoreCase (opcao)){

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

[/code]

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:

[code]String s = “teste”;
String s1 = “teste”;

//retorna true caso seja igual
if(s.equals(s1));
System.out.println(“Iguais”);[/code]

Agora vamos supor da seguinte forma:

[code]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”);[/code]

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

[code]String s = " teste";
String s1 = “teste”;

//se nao usar o trim o resultado será false
if(s.trim().equals(s1))
System.out.println(“Ok”);[/code]

Espero ter ajudado, Abraços! :smiley:

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

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;
(...)
}