Musisz zamknąć wszystko w pętli do...while i na końcu switcha dodać polecenie, które będzie się wykonywało, gdy zmienna nie przyjmie żadnej przewidzianej wartości:
int a;
cout<<"Wpisz 1, 2 lub 3"<<endl;
do
{
cin>>a;
switch(a)
{
case 1: cout<<"1";
break;
case 2: cout<<"2";
break;
case 3: cout<<"3";
break;
default: cout<<"Blad. Wpisz jeszcze raz"<<endl;
}
}while(a>3 || a<1);
Zauważyłem również, że w Twoim kodzie brakuje linii z poleceniem break, bez której całość nie będzie działać poprawnie.
Oczywiście jest to tylko ogólny schemat, więc nie zabezpiecza przed np. wprowadzeniem napisu zamiast wartości dla zmiennej int.