Operador "ou" e "e"

Quais os operadores pra indicarem “ou”, e “e”?
vi em um site q era “|” mas ta dando erro com ele, esse é o codigo:

[code]
import javax.swing.JOptionPane;

public class cp5 {

public static void main(String args[]) {

	String a = JOptionPane.showInputDialog("Você nasceu no rio?");

		if (a.equals("Sim" || "sim")){

                            JOptionPane.showMessageDialog(null,"Então você é carioca");

		} else {
		
			JOptionPane.showMessageDialog(null,"Você não é carioca");

		}

}

}[/code]

Uma alternativa seria:

 String a = JOptionPane.showInputDialog("Você nasceu no rio?");   
		  a = a.toUpperCase();// Passar tudo para maiusculo
          if (a.equals("SIM")){   

                              JOptionPane.showMessageDialog(null,"Então você é carioca");   

          } else {   
             
              JOptionPane.showMessageDialog(null,"Você não é carioca");   

          }   

	}

Tente

import javax.swing.JOptionPane;   
  
public class cp5 {   
  
    public static void main(String args[]) {   
  
        String a = JOptionPane.showInputDialog("Você nasceu no rio?");   
  
            if ((a.equals("Sim") || (a.equals("sim")))){   
  
                                JOptionPane.showMessageDialog(null,"Então você é carioca");   
  
            } else {   
               
                JOptionPane.showMessageDialog(null,"Você não é carioca");   
  
            }   
  
    }   
  
}  

|| seria o equivalente java (e da maioria das linguagens) para OR/OU
&& seria o equivamente java (e da maioria das linguagens) para AND/E

A sintaxe deve fazer comparações isoladas, ou seja

if (a.equals("Sim" || "sim")){   

Em que a comparação é feita na mesma sentença, lança erro.

if(a.equals("Sim") || a.equals("sim")){

irá ser executada com sucesso.

Além do mais, como a palavra será digitada pelo usuário, seria interessante substituir o equals por equalsIgnoreCase

if(a.equalsIgnoreCase("sim")){

pois, independente da digitação ser caixa baixa, CAIXA ALTA ou MiGuXêS, irá ter o mesmo objeto para comparação.

Acho que o que você quer fazer é:

 if(a.equalsIgnoreCase("sim")) 

ou

  if(a.equals("Sim") || a.equals("sim")) 

[quote=alan_pjr]Acho que o que você quer fazer é:

 if(a.equalsIgnoreCase("sim")) 

ou

  if(a.equals("Sim") || a.equals("sim")) 

O melhor a ser usado é o equalsIgnoreCase…

Devido o usuario poder digitar SIm sIM siM SIm … imagina quantos (|| OU) teria que utilizar!