Java 计数-添加几行,运行它,测试它是否工作,然后重复。在我看来,你已经写了整件事,并期望它第一次起作用。这种情况很少发生。此代码中没有AdollenceIntro()方法。有一个同名的变量。您还没有指出这些太多的代码行中哪一行引发了异常。你应该在你的问题中提供

Java 计数-添加几行,运行它,测试它是否工作,然后重复。在我看来,你已经写了整件事,并期望它第一次起作用。这种情况很少发生。此代码中没有AdollenceIntro()方法。有一个同名的变量。您还没有指出这些太多的代码行中哪一行引发了异常。你应该在你的问题中提供,java,exception,nosuchelementexception,Java,Exception,Nosuchelementexception,计数-添加几行,运行它,测试它是否工作,然后重复。在我看来,你已经写了整件事,并期望它第一次起作用。这种情况很少发生。此代码中没有AdollenceIntro()方法。有一个同名的变量。您还没有指出这些太多的代码行中哪一行引发了异常。你应该在你的问题中提供堆栈跟踪和相关的方法,可能没有其他内容。对不起--我的意思是“变量”而不是“方法”。更改了我问题的内容以使其更清楚。但你仍然没有添加堆栈跟踪。也许这样更好,基于以下内容,在main中创建一次Scanner对象,并在main末尾将其关闭,而不是在


计数-添加几行,运行它,测试它是否工作,然后重复。在我看来,你已经写了整件事,并期望它第一次起作用。这种情况很少发生。

此代码中没有
AdollenceIntro()
方法。有一个同名的变量。您还没有指出这些太多的代码行中哪一行引发了异常。你应该在你的问题中提供堆栈跟踪和相关的方法,可能没有其他内容。对不起--我的意思是“变量”而不是“方法”。更改了我问题的内容以使其更清楚。但你仍然没有添加堆栈跟踪。也许这样更好,基于以下内容,在main中创建一次Scanner对象,并在main末尾将其关闭,而不是在nextStoryLine方法中重新打开和关闭系统。。。只是一个thought@RAZ_Muh_Taz不仅仅是更好-必要的。事实上,我正在我的答案中加入这一点:)
  //import java.util.HashMap;
import java.util.Scanner;


public class ChooseYourAdventure {


    //private static HashMap<String, Storyline> stories = new HashMap<String, Storyline>();

    private static Storyline death = new Storyline(0, 0, 0, Storylines.deathText, null, null);

    // adolescence
    private static Storyline glue = new Storyline(0, -1, 0, Storylines.glueText, null, null);
    private static Storyline befriendDavid = new Storyline(0, 3, 2, Storylines.befriendDavidText, null, null);
    private static Storyline dinosaurIsland = new Storyline(0, 1, 1, Storylines.dinosaurIslandText, null, null);
    private static Storyline buildCastle = new Storyline(0, 3, 2, Storylines.buildCastleText, null, null);
    private static Storyline terrorize = new Storyline(0, 0, 0, Storylines.terrorizeText, befriendDavid, glue);
    private static Storyline comply = new Storyline(0, 0, 0, Storylines.complyText, buildCastle, dinosaurIsland);
    private static Storyline adolescenceIntro = new Storyline(0, 0, 1, Storylines.adolescenceIntroText, comply, terrorize);

    // infancy
    private static Storyline sleepItOff = new Storyline(0, -2, 0, Storylines.sleepItOffText, null, null);
    private static Storyline cryMore = new Storyline(0, 3, 1, Storylines.cryMoreText, null, null);
    private static Storyline cooperate = new Storyline(0, 5, 0, Storylines.cooperateText, null, null);
    private static Storyline screamLouder = new Storyline(0, 0, 0, Storylines.screamLouderText, death, death);
    private static Storyline moneyIssues = new Storyline(0, -2, 0, Storylines.moneyIssuesText, cryMore, sleepItOff);
    private static Storyline cry = new Storyline(0, -2, 0, Storylines.cryText, cooperate, screamLouder);
    private static Storyline birth = new Storyline(0, 0, 0, Storylines.birthText, moneyIssues, cry);


    public ChooseYourAdventure()
    {

    }

    public static void main(String[] args)
    {
        ChooseYourAdventure cyaGame = new ChooseYourAdventure();
        Character player = new Character();
        System.out.println("\n-----| CHAPTER 1: INFANCY |-----\n");
        cyaGame.playStoryline(birth, player);
        if(player.checkIsDead() == true)
        {
            return;
        }
        System.out.println("\n\n-----| CHAPTER 2: ADOLESCENCE |-----\n");
        player.setAge(4);
        cyaGame.playStoryline(adolescenceIntro, player);
        System.out.println("\n\n-----| CHAPTER 2: YOUNG ADULTHOOD |-----\n");
        System.out.println("\n\n-----| CHAPTER 2: ADULTHOOD |-----\n");
        System.out.println("\n\n-----| CHAPTER 2: OLD AGE |-----\n");

    }

    public void playStoryline(Storyline story, Character p)
    /**
     * display text,stats
     * call nextStoryLine
     */
    {
        p.addHappiness(story.getHappinessChange());
        p.addMeaning(story.getMeaningChange());

        System.out.println("Current age: " + p.getAge());
        System.out.println("\nHappiness level: " + p.getHappiness());
        System.out.println("Meaning level: " + p.getMeaning() + "\n");
        System.out.println(story.getText());
        p.addAge(story.getAgeChange());
        nextStoryline(story, p);
    }

    public void nextStoryline(Storyline story, Character p)
    {   
        if(story.getOption1() == null) // end of chapter
        {
            return;
        }

        else if(story.getOption1().equals(death)) // end of game
        {
            p.setIsDead(true);
            System.out.println(death.getText());
            return;
        }
        else
        {
            System.out.println("\nSelect your option by typing \"1\" or \"2.\"");
            Scanner scr = new Scanner(System.in);
            String answer = scr.nextLine();
            if(answer.equals("1"))
            {
                System.out.println("\n-------\n");
                playStoryline(story.getOption1(), p);
            }
            else if(answer.equals("2"))
            {
                System.out.println("\n-------\n");
                playStoryline(story.getOption2(), p);
            }
            else
            {
                System.out.println("Invalid input; please try again");
                System.out.println("\n-------\n");
                nextStoryline(story, p);
            }
            scr.close();
        }
    }

//  public static void printStoriesInfo()
//  {
//      System.out.println("number of stories: " + Storyline.numberOfStories);
//      System.out.println("\n-------\n");
//      System.out.println("entry set: " + stories.entrySet());
//      System.out.println("\n-------\n");
//      System.out.println("keys: stories.keySet() = " + stories.keySet());
//      System.out.println("\n-------\n");
//      System.out.println("text:");
//      for(Storyline s : stories.values())
//      {
//          System.out.println(s.getText());
//      }
//  }
}
Scanner scr = new Scanner(System.in);
String answer = scr.nextLine();
...
scr.close();
Scanner scr = new Scanner(System.in);
if (scr.hasNextLine())
{
    String answer = scr.nextLine();
    ...
}
scr.close();