Exception in thread main java util NoSuchElementException

0 votes

Whenever I run this, the chooseCave() function works fine with the in.nextInt(). When I choose the cave, the messages pop up at 2-second intervals, and then as soon as it gets past that part, it gives me the error:

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Unknown Source)
    at Dragon.main(Dragon.java:81)

I have tried hasNextLine() and hasNextInt(), and when I use while hasNextLine() in the main method, I get a ton more errors. When I use while hasNextInt() in the chooseCave() method, it doesn't accept my input.

When I use if hasNextInt() in the chooseCave() method, it doesn't accept my input for the playAgain string, and goes straight into another game, but then the hasNextInt() boolean returns false and it spams "Which cave..." infinitely.

I've gone through the error reports and the Java-docs and Stack Overflow's with similar problems. Please help.

import java.util.Scanner;
public class Dragon {

public static void displayIntro() {
    System.out.println("You are in a land full of dragons. In front of you, ");
    System.out.println("You see two caves. In one cave, the dragon is friendly");
    System.out.println("and will share his treasure with you. The other dragon");
    System.out.println("is greedy and hungry, and will eat you on sight");
    System.out.println(' ');
}

public static int chooseCave() {
    Scanner in = new Scanner(System.in);
    int cave = 0;
    while (cave != 1 && cave != 2) {
        System.out.println("Which cave will you go into? (1 or 2)");

        cave = in.nextInt();

    }
    in.close();
    return cave;
} 

public static void checkCave(int chosenCave) {
    System.out.println("You approach the cave...");
    try
       {
       // Sleep at least n milliseconds.
       // 1 millisecond = 1/1000 of a second.
       Thread.sleep( 2000 );
       }
    catch ( InterruptedException e )
       {
       System.out.println( "awakened prematurely" );
       }
    System.out.println("It is dark and spooky...");
    try
       {
       // Sleep at least n milliseconds.
       // 1 millisecond = 1/1000 of a second.
       Thread.sleep( 2000 );
       }
    catch ( InterruptedException e )
       {
       System.out.println( "awakened prematurely" );
       }
    System.out.println("A large dragon jumps out in front of you! He opens his jaws and...");
    try
       {
       // Sleep at least n milliseconds.
       // 1 millisecond = 1/1000 of a second.
       Thread.sleep( 2000 );
       }
    catch ( InterruptedException e )
       {
       System.out.println( "awakened prematurely" );
       }

    double friendlyCave = Math.ceil(Math.random() * 2);

    if (chosenCave == friendlyCave) {
        System.out.println("Gives you his treasure!");
    }
    else {
        System.out.println("Gobbles you down in one bite!");
    }



}
public static void main(String[] args) {
    Scanner inner = new Scanner(System.in);
    String playAgain = "yes";
    boolean play = true;
    while (play) {
        displayIntro();
        int caveNumber = chooseCave();
        checkCave(caveNumber);
        System.out.println("Do you want to play again? (yes or no)");
        playAgain = inner.nextLine();
        if (playAgain == "yes") {
            play = true;
        }
        else {
            play = false;
        }
    }
    inner.close();

}

}
Sep 20 in Java-Script by Tejashwini
• 540 points
17 views

No answer to this question. Be the first to respond.

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.

Related Questions In Java-Script

0 votes
0 answers

How can I solve Exception in thread "main" java.lang.NullPointerException error

I am having a problem at a ...READ MORE

Sep 20 in Java-Script by Tejashwini
• 540 points
12 views
0 votes
0 answers

NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference

I'm a newbie to Fragments and custom ListView adapters. Can anyone ...READ MORE

Sep 20 in Java-Script by Tejashwini
• 540 points
23 views
0 votes
0 answers

Why am I getting a NoClassDefFoundError in Java?

When I execute my Java application, I ...READ MORE

Sep 22 in Java-Script by Tejashwini
• 1,960 points
7 views
0 votes
0 answers

Convert list to array in Java

How can I convert a List to an Array in Java? Check ...READ MORE

Sep 22 in Java-Script by Tejashwini
• 1,960 points
12 views
0 votes
0 answers

Why is String immutable in Java?

When interviewed, I was questioned as to ...READ MORE

Sep 22 in Java-Script by Tejashwini
• 1,960 points
8 views
0 votes
0 answers

What is difference between mutable and immutable String in java?

As far as I know, An immutable string ...READ MORE

Sep 22 in Java-Script by Tejashwini
• 1,960 points
12 views
0 votes
0 answers

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

This is the exception on getConnection(): java.sql.SQLException: Access denied ...READ MORE

May 16 in Java by Kichu
• 19,040 points
2,639 views
0 votes
0 answers

How can I solve "java.lang.NoClassDefFoundError"?

I've tried both the examples in Oracle's Java ...READ MORE

Sep 20 in Java-Script by Tejashwini
• 540 points
13 views
0 votes
0 answers

What could cause java.lang.reflect.InvocationTargetException?

I've attempted to comprehend and read about potential causes, but I just don't get it: I have the following code try{ .. m.invoke(testObject); .. } catch(AssertionError e){ ...READ MORE

Sep 22 in Java-Script by Tejashwini
• 1,960 points
7 views
+5 votes
4 answers

How to execute a python file with few arguments in java?

You can use Java Runtime.exec() to run python script, ...READ MORE

answered Mar 27, 2018 in Java by DragonLord999
• 8,450 points

edited Nov 7, 2018 by Omkar 64,780 views
webinar REGISTER FOR FREE WEBINAR X
REGISTER NOW
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP