I wrote a program with a separate class but I keep getting the same error right after the user inputs the three sides.
The main code is:
package interac
Try removing the following line:
console.close();
You can't read from console
once you've closed it.
You almost certainly shouldn't explicitly close your Scanner
: doing so will close System.in
. It is not a good practice to close a stream that you haven't opened yourself, since some other code may rely on the stream being open, and throw an exception when it isn't.
Debugging such a problem - where the exception is potentially thrown a long way from the cause - is very tricky.
Scanner#nextDouble
throws NoSuchElementException
if the input is exhausted
The way do avoid it, and the correct way to use scanner generally (also for iterators) is to first check if there is such an input available. Try:
if (scanner.hasNextDouble())
scanner.nextDouble();
If the call returns false
then there is simply no double
to read.