La mejor forma de entender el funcionamiento de algo, es viendo un ejemplo de esto, de este modo, me parece que para comprender de forma adecuada como funciona un condicional Switch, es bueno hacerlo poniendo un ejemplo. Imaginemos entonces que nuestro programa consta de un menú de opciones digamos 3 opciones, cada una representada con un número correspondiente, es decir la opción uno corresponde al número 1, la dos al 2 y así sucesivamente, queremos entonces que de acuerdo a un número ingresado por el usuario ejecutemos una acción correspondiente y en caso de que no corresponda a ninguna de las posibles opciones, mostrar un mensaje de error cualquiera. De este modo, podemos identificar 3 casos distintos para nuestro switch o en otras palabras, hemos identificado tres condiciones posibles que puede llegar a cumplir nuestra variable: el caso uno corresponde a que el valor ingresado por el usuario sea el 1, es decir ejecutar la opción 1, el caso 2 el número 2, etc. adicionalmente hemos encontrado la opción que se ejecutará por defecto en caso de no suceder ninguno de estos casos, es decir si el usuario ingresa por ejemplo 10, mostraremos un mensaje de error cualquiera.

Espero que haya sido un tanto claro con esto, si no es así, recuerda que puedes preguntar en la sección de comentarios y con gusto te voy a responder o incluso modificar esta sección para responder tu cuestión, de igual forma, vamos a ver ya mismo unos ejemplos para entender mucho mejor de lo que he estado hablando.

 

#include <conio.h>
#include <stdio.h>

int main()
{
	int opc, a,b;
	printf("Dame dos numeros");
	scanf("%d %d",&a,&b);
	printf("1)suma\n2)resta\n3)multiplicacion\nQue deseas hacer? ");
	scanf("%d",&opc);
	switch(opc)
	{
		case 1: printf("%d+%d=%d",a,b,a+b);
			break;
		case 2: printf("%d-%d=%d",a,b,a-b);
			break;
		case 3: printf("%d*%d=%d",a,b,a*b);
			break;
		default: printf("Opcion incorrecta");
			break;
	}
	getch();
	return 0;
}


Ahora añadimos el system CLS y un salto de linea

#include
#include

int main()
{
int opc, a,b;

printf("Dame dos numeros");
scanf("%d %d",&a,&b);
printf("1)suma\n2)resta\n3)multiplicacion\nQue deseas hacer? ");
system("cls");
scanf("%d",&opc);
switch(opc)
{
case 1: printf("\n%d+%d=%d",a,b,a+b);
break;
case 2: printf("\n%d-%d=%d",a,b,a-b);
break;
case 3: printf("\n%d*%d=%d",a,b,a*b);
break;
default: printf("Opcion incorrecta");
break;
}
getch();
return 0;
}

Ahora para el uso de entradas con caracteres se recomienda usar cin y no scanf porque puede generar errores

#include <conio.h>
#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
	int opc, a,b;
	char z;
	printf("Dame dos numeros");
	scanf("%d %d",&a,&b);
	printf("a)suma\nb)resta\nc)multiplicacion\nQue deseas hacer? ");
	//system("cls");
	cin>> z;
	switch(z)
	{
		case 'a': printf("\n%d+%d=%d",a,b,a+b);
			break;
		case 'b': printf("\n%d-%d=%d",a,b,a-b);
			break;
		case 'c': printf("\n%d*%d=%d",a,b,a*b);
			break;
		default: printf("Opcion incorrecta");
			break;
	}
	getch();
	return 0;
}

Para el uso de mayúsculas y minúsculas podemos usar un doble case; el primero sin uso de break; ya que al no contar con esta instrucción el programa sigue

#include <conio.h>
#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
	int opc, a,b;
	char z;
	printf("Dame dos numeros");
	scanf("%d %d",&a,&b);
	printf("a)suma\nb)resta\nc)multiplicacion\nQue deseas hacer? ");
	//system("cls");
	cin>> z;
	switch(z)
	{
		case 'A':
		case 'a': printf("\n%d+%d=%d",a,b,a+b);
			break;
		case 'B':	
		case 'b': printf("\n%d-%d=%d",a,b,a-b);
			break;
		case 'C':	
		case 'c': printf("\n%d*%d=%d",a,b,a*b);
			break;
		default: printf("Opcion incorrecta");
			break;
	}
	getch();
	return 0;
}