我的代码没有报错,但是,在执行后出现如下错误:请大神帮助!
是否继续?yes/no
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at cn.edu.hpu.game.Game.begin(Game.java:69)
at cn.edu.hpu.game.Test.main(Test.java:11)

解决方案 »

  1.   

    Exception in thread "main" java.util.NoSuchElementException
    这是报异常了啊……NoSuchElementException。由 Enumeration 的 nextElement 方法抛出,表明枚举中没有更多的元素。你看一下你的程序吧,这是一个RuntimeException,在编译时不会报错的、
      

  2.   

    package cn.edu.hpu.game;import java.util.Scanner;public class Game {
    //猜拳有三个属性:玩家姓名、电脑人姓名、游戏局数,一个方法;游戏开始
    private Player p=new Player();
    private Computer c=new Computer();
    private int count=0;

    public void begin(){
    System.out.println("********欢迎来到猜拳游戏********");
    System.out.println("游戏规则:1、剪刀 2、石头 3、布");
    System.out.println("请输入你的姓名:");
    Scanner UserInput=new Scanner(System.in);//接受用户的输入
    String UserName=UserInput.next();//玩家输入名字
    p.setName(UserName);//设置玩家的名字

    //选择对手
    System.out.print("请选择你的对手:1、刘备 2、孙权 3、曹操:");
    int UserSelect=UserInput.nextInt();
    switch(UserSelect){
    case 1:
    c.setName("刘备");
    break;
    case 2:
    c.setName("孙权");
    break;
    case 3:
    c.setName("曹操");
    break;
    }

    System.out.println("开始游戏吗?yes/no");
    String isBegin=UserInput.next();
    if(isBegin.equals("yes")){
    System.out.println("游戏开始.....");
    System.out.println(p.getName()+"VS"+c.getName());
    //定义是否继续游戏的控制
    String isContiune=null;
    do{
    //存放出拳
    int pFist=p.Fist();
    int cFist=c.Fist();

    //判断胜负
    if((pFist==1 && cFist==3)||
    (pFist==2 && cFist==1)||
    (pFist==3 && cFist==2))
    {
    System.out.println("本局"+p.getName()+"胜!");
    p.setScore(p.getScore()+1);
    }
    else if((pFist==1 && cFist==1)||
    (pFist==2 && cFist==2)||
    (pFist==3 && cFist==3))
    {
    System.out.println("本局平!!!!");

    }
    else
    {
    System.out.println("本局"+c.getName()+"胜!");
    c.setScore(c.getScore()+1);
    }

    //提示玩家是否继续
    System.out.println("是否继续?yes/no");
    isContiune=UserInput.next();

    count++;
    }while(isContiune.equals("yes"));
    }
    UserInput.close();
    }
    public void showReslut()
    {
    int duce=count-p.getScore()-c.getScore();
    System.out.println("**********游戏结束,统计结果如下***********");
    System.out.printf("**********"+p.getName()+ " VS "+c.getName()+"*******");

    //判断最终的胜利
    if(p.getScore()>c.getScore())
    {
    System.out.println(p.getName()+"取得最终的胜利!!");
    }
    else if(p.getScore()==c.getScore())
    {
    System.out.println("这是一个平局,两位下次在一决高下!!!!");
    }
    else
    {
    System.out.println(c.getName()+"取得最终的胜利!!");
    }
    System.out.println("总局数:"+count);
    System.out.println(p.getName()+"胜的局数为:"+p.getScore());
    System.out.println(c.getName()+"胜的局数为:"+c.getScore());
    System.out.println("平局数:"+duce);
    } public int getCount() {
    return count;
    } public void setCount(int count) {
    this.count = count;
    }
    }
      

  3.   

    System.out.print("请选择你的对手:1、刘备 2、孙权 3、曹操:");
    int UserSelect=UserInput.nextInt();
    这里输入的话是否应该用string 类型 然后在转成 int?
      

  4.   

    如果方便可以登www.hkbat.com发上问题 我会自己差错
      

  5.   

    int UserSelect=Integer.parseInt(UserInput.next());
      

  6.   

    int UserSelect=UserInput.nextInt();就能控制用户输入并且转换成int类型效果貌似和:
    int int UserSelect=Integer.parseInt(UserInput.next());相同!
      

  7.   

    是在 生成.class文件的时候出现异常