我主要问的是while (a<1 || a>3)
{
try{
System.out.println("输入错误,请输入1,2,3");
Scanner src=new Scanner(System.in);
a=src.nextInt();
}
catch (InputMismatchException e)
{
System.out.println("输入不符合规定!");
}

}这一块代码我想循环判断输入数据是否为1,2,3 不是的话就抛出异常循环输入 直到输入正确这段代码我写到一个类的方法里了 所有代码如下 求高手指点下 俺是初学者
import java.util.InputMismatchException;
import java.util.Scanner;
public class Compoter { public static String name;
public static int score=0;
public static String chuquan;
public static int cishu;
public static int score1=0;
public static int j=0;

public void showFist()
{

}
public static  String xingming (int a)
{
switch (a)
{
case 1:name="刘备";break;
case 2:name="孙权";break;
case 3:name="曹操";break;
}
return name;
}
public  static  String dianchu(int sum)
{

switch (sum)
{
case 1:chuquan="石头";break;
case 2:chuquan="剪刀";break;
case 3:chuquan="布";break;
}
return chuquan;
}
public static void jieguo(int sub,int sum)
{
if (sub==sum)
{
System.out.println("你们两个打平手了!");
j++;
}
if(sub==1 && sum==2)
{
System.out.println("您赢了!");
score-=1;
score1+=1;
}
if (sub==1&&sum==3)
{
System.out.println("您输了!");
score+=1;
score1-=1;
}
if (sub==2 && sum==1)
{
System.out.println("您输了!");
score+=1;
score1-=1;
}
if (sub==2 && sum==3)
{
System.out.println("您赢了!");
score-=1;
score1+=1;
}
if (sub==3 && sum==1)
{
System.out.println("您赢了!");
score-=1;
score1+=1;
}
if (sub==3 && sum==2)
{
System.out.println("您输了!");
score+=1;
score1-=1;
}

}
public static int cuowu(int a)
{


while (a<1 || a>3)
{
try{
System.out.println("输入错误,请输入1,2,3");
Scanner src=new Scanner(System.in);
a=src.nextInt();
}
catch (InputMismatchException e)
{
System.out.println("输入不符合规定!");
}

}





return  a;
}}public class People {
public static String name1;
public int score1;
public static String chuquan1;

public void showFist()
{

} public  static  String renchu(int sub)
{

switch (sub)
{
case 1:chuquan1="石头";break;
case 2:chuquan1="剪刀";break;
case 3:chuquan1="布";break;

}
return chuquan1;
}
}
import java.util.Random;
import java.util.Scanner;
public class Test { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub



System.out.println("出拳规则:1.剪刀2.石头3.布");
System.out.print("请选择对方角色:(1.刘备2.孙权3.曹操):");
Scanner src=new Scanner(System.in);
int a=src.nextInt(); a=Compoter.cuowu(a);
Compoter.xingming(a);
System.out.print("请输入您的姓名:");
System.out.println();
String b=src.next();
Compoter.xingming(a);
    
System.out.println(b+"  VS  "+Compoter.name+"  对战");


     System.out.print("要开始么?(y/n)");
     String xuanze=src.next();
     String jixu="y";
     String tuichu="n";
             while (xuanze.equals(xuanze!=jixu) && xuanze.equals(xuanze!=tuichu))
             {
              System.out.println("输入错误!请重新输入!y/n");
              xuanze=src.next();
             }
int i=0;

while (xuanze.equals("y"))
{
i++;
    Random sr=new Random();
    int sum=sr.nextInt(3)+1;
System.out.println("请出拳:1石头.2剪刀.3.布(输入相应数字):");
int sub=src.nextInt();
Compoter.cuowu(sub);
sub=Compoter.cuowu(a);
People.renchu(sub);
System.out.println("你出拳:"+People.chuquan1);
Compoter.dianchu(sum);
System.out.println(Compoter.name+" 出拳 "+Compoter.chuquan);
Compoter.jieguo(sub,sum);
System.out.println("是否开始下一轮:(y/n)");
xuanze=src.next();

}
if (xuanze.equals("n"))
{
System.out.println("猜拳结束!您一共进行了"+i+"次游戏!");
System.out.println(b+"  VS  "+Compoter.name+"  对战");
System.out.println("对战次数:"+i+"          平手次数"+Compoter.j);
System.out.println(b+"得分:"+Compoter.score1);
System.out.println(Compoter.name+"得分"+Compoter.score);
if (Compoter.score==Compoter.score1)
{
System.out.println("结果为:奥,你们打平了!改日再战!一决高下哦!");
}
if (Compoter.score<Compoter.score1)
{
System.out.println("结果为:"+b+"战胜了"+Compoter.name);
}
if (Compoter.score>Compoter.score1)
{
System.out.println("结果为:"+Compoter.name+"战胜了"+b);
}


} } }
try  catch