Ola amigos estou iniciando no java. E preciso a fazer um algoritmo que calcule a area de um triangulo ou retangulo de acordo com o que usuario escolher. porem ao selecionar o tipo o programa encerra alguem pode me dizer onde estou errando?

import java.util.*;

public class Exer04 {
public static void main(String[]args) {

	Scanner teclado = new Scanner(System.in);
	double b,h,A,B,C;
	String tipo;
	
	System.out.println("Informe o Tipo de área a ser calculada. Sendo T (triângulo) e (R) retângulo: ");
	tipo = teclado.nextLine();
	
	if(tipo == "R" || tipo == "r") {
		System.out.println("Informe a base: ");
		b = teclado.nextDouble();
		
		System.out.println("Informe a altura: ");
		h = teclado.nextDouble();
		
		System.out.printf("A área do retângulo é %.2f",b*h);
	}
	
			
	else if (tipo == "T" || tipo == "t") {
		System.out.println("Informe os 3 lados : ");
		A = teclado.nextDouble();
		B = teclado.nextDouble();
		C = teclado.nextDouble();
		
		if(A > B + C || B > A + C || C > A + B) {
			System.out.println("Não é um triângulo. Insira uma valor válido.");				
		}
		else{
			System.out.println("Informe a base: ");
			b = teclado.nextDouble();
			
			System.out.println("Informe a altura: ");
			h = teclado.nextDouble();
			
			System.out.printf("A área do triâgulo é : %.2f", (b*h)/2);
	}
}
}
}

Qual o erro?

Um detalhe: tipo == "T". Não se compara String assim. O operador == compara identidade de objetos, e não o valor. Usa o método equals ou equalsIgnoreCase para comparar conteúdo de Strings.