質問させて下さい。

for(i=0 ; i !=1 && i !=2 ; ){
printf("put 1 or 2\n");
scanf("%d", &i);
if(i !=1 && i!=2){
scanf("%d", &i);
}
こうすると、数字を入力したときは
正常に再入力に戻ってくれるのですが
英字(aなど)を入力すると入力メッセージ
が無限ループしてしまいます。
英字を入れたときも正常に再入力
にするにはどうすればいいですか?