Meu looping do while não encerra

Meu looping não interrompe mesmo quando k==z || k==Z.
Não sei mais o que fazer e preciso terminar uma calculadora resetável e funcionando até quinta.
Além disso, não sei que comando colocar para limpar o cmd toda vez que a pessoa pressionar Z || z.

     package oo;
     
 import java.util.Scanner;
     
public class Main {

        @SuppressWarnings({ "unused", "resource" })

        public static void main(String[] args) {
	
	Scanner scan = new Scanner(System.in); 		 
	 String y = null;
	String k = y, z, Z;
	char a, A, b, B, c, C, d, D, e, E, f, F, x;
	
	z  = null;
	Z  = null;
	
	int g, h;
	double i;


	


do {	
	System.out.println("Digite a para somar");
	System.out.println("Digite b para subtrair");
	System.out.println("Digite c para multipicar");
	System.out.println("Digite d para dividir");
	System.out.println("Digite e para potencia");
	System.out.println("Digite f para raiz");
	System.out.println("///////////////////////////////////////////////");
	System.out.println("Digite z para sair");
	k = scan.next();

	
	

	switch(k)
	{
	
	case "a":
	System.out.println("Digite o primeiro valor:");
	g = scan.nextInt();
	System.out.println("Digite o segundo valor:");
	h = scan.nextInt();
	i = g + h;
	System.out.println("Seu resultado é: "+i);
	System.out.println("///////////////////////////////////////////////");
	break;
	
	 		
	
	//A
	case "b":
 		System.out.println("Digite o primeiro valor:");
 		g = scan.nextInt();
 		System.out.println("Digite o segundo valor:");
 		h = scan.nextInt();
 		i = g - h;
 		System.out.println("Seu resultado é: "+i);
 		System.out.println("///////////////////////////////////////////////");
 		break;
 		
 		
 	//A
	case "c":
 		System.out.println("Digite o primeiro valor:");
 		g = scan.nextInt();
 		System.out.println("Digite o segundo valor:");
 		h = scan.nextInt();
 		i = g * h;
 		System.out.println("Seu resultado é: "+i);
 		System.out.println("///////////////////////////////////////////////");
 		break;
 		
 		
 	//A
	case "d":
 		System.out.println("Digite o primeiro valor:");
 		g = scan.nextInt();
 		System.out.println("Digite o segundo valor:");
 		h = scan.nextInt();
 		i = g / h;
 		System.out.println("Seu resultado é: "+i);
 		System.out.println("///////////////////////////////////////////////");
 		break;
 		
 		
 	//A
	case "e":
 		System.out.println("Digite o primeiro valor:");
 		g = scan.nextInt();
 		System.out.println("Digite o segundo valor:");
 		h = scan.nextInt();
 		i = Math.pow(g, h);
 		System.out.println("Seu resultado é: "+i);
 		System.out.println("///////////////////////////////////////////////");
 		break;
 		
 	//A
	case "f":
 		System.out.println("Digite o primeiro valor:");
 		g = scan.nextInt();
 		System.out.println("Digite o segundo valor:");
 		h = scan.nextInt();
 		i = Math.pow(g, 1.0 / h);
 		System.out.println("Seu resultado é: "+i);
 		System.out.println("///////////////////////////////////////////////");
 		break;
 		
 	//A
	case "A":
 	 		System.out.println("Digite o primeiro valor:");
 	 		g = scan.nextInt();
 	 		System.out.println("Digite o segundo valor:");
 	 		h = scan.nextInt();
 	 		i = g + h;
 	 		System.out.println("Seu resultado é: "+i);
 	 		System.out.println("///////////////////////////////////////////////");
 	 		break;
 	 		
 	 		
 	 //A
 	 case "B":
 	 	 		System.out.println("Digite o primeiro valor:");
 	 	 		g = scan.nextInt();
 	 	 		System.out.println("Digite o segundo valor:");
 	 	 		h = scan.nextInt();
 	 	 		i = g - h;
 	 	 		System.out.println("Seu resultado é: "+i);
 	 	 	System.out.println("///////////////////////////////////////////////");
 	 	 	break;
 	 	 		
 	 	 		
 	//A
 	 case "C":
 	 	 		System.out.println("Digite o primeiro valor:");
 	 	 		g = scan.nextInt();
 	 	 		System.out.println("Digite o segundo valor:");
 	 	 		h = scan.nextInt();
 	 	 		i = g * h;
 	 	 		System.out.println("Seu resultado é: "+i);
 	 	 	System.out.println("///////////////////////////////////////////////");
 	 	 	break;
 	 	 		
 	 	 		
	//A
 	 case "D":
 	 	 		System.out.println("Digite o primeiro valor:");
 	 	 		g = scan.nextInt();
 	 	 		System.out.println("Digite o segundo valor:");
 	 	 		h = scan.nextInt();
 	 	 		i = g / h;
 	 	 		System.out.println("Seu resultado é: "+i);
 	 	 	System.out.println("///////////////////////////////////////////////");
 	 	 	break;
 	 			
 	//A
	case "E":
 		System.out.println("Digite o primeiro valor:");
 		g = scan.nextInt();
 		System.out.println("Digite o segundo valor:");
 		h = scan.nextInt();
 		i = Math.pow(g, h);
 		System.out.println("Seu resultado é: "+i);
 		System.out.println("///////////////////////////////////////////////");
 		break;
 		
 	//A
	case "F":
 		System.out.println("Digite o primeiro valor:");
 		g = scan.nextInt();
 		System.out.println("Digite o segundo valor:");
 		h = scan.nextInt();
 		i = Math.pow(g, 1.0 / h);
 		System.out.println("Seu resultado é: "+i);
 		System.out.println("///////////////////////////////////////////////");
 		break;
	}
	

}while(k==z || k==Z);}}

Você está comparando 'z' ou 'Z' com null. Sempre vai dar false. Isso vai resolver o problema:

while (k.equalsIgnoreCase("z"))

Peço perdão pelo erro barbosa, eu acabei esquecendo de corrijir os testes que estava tentando fazer, queria colocar k != z || k != Z.
o correto no while seria: