Note that there are some explanatory texts on larger screens.

plurals
  1. POjava.util.NoSuchElementException - Scanner reading user input
    primarykey
    data
    text
    <p>I'm new to using Java, but I have some previous experience with C#. The issue I'm having comes with reading user input from console.</p> <p>I'm running into the "java.util.NoSuchElementException" error with this portion of code:</p> <pre><code>payment = sc.next(); // PromptCustomerPayment function </code></pre> <p>I have two functions that get user input:</p> <ul> <li>PromptCustomerQty</li> <li>PromptCustomerPayment</li> </ul> <p>If I don't call PromptCustomerQty then I don't get this error, which leads me to believe I am doing something wrong with scanner. Below is my full code sample. I appreciate any help. </p> <pre><code>public static void main (String[] args) { // Create a customer // Future proofing the possabiltiies of multiple customers Customer customer = new Customer("Will"); // Create object for each Product // (Name,Code,Description,Price) // Initalize Qty at 0 Product Computer = new Product("Computer","PC1003","Basic Computer",399.99); Product Monitor = new Product("Monitor","MN1003","LCD Monitor",99.99); Product Printer = new Product("Printer","PR1003x","Inkjet Printer",54.23); // Define internal variables // ## DONT CHANGE ArrayList&lt;Product&gt; ProductList = new ArrayList&lt;Product&gt;(); // List to store Products String formatString = "%-15s %-10s %-20s %-10s %-10s %n"; // Default format for output // Add objects to list ProductList.add(Computer); ProductList.add(Monitor); ProductList.add(Printer); // Ask users for quantities PromptCustomerQty(customer, ProductList); // Ask user for payment method PromptCustomerPayment(customer); // Create the header PrintHeader(customer, formatString); // Create Body PrintBody(ProductList, formatString); } public static void PromptCustomerQty(Customer customer, ArrayList&lt;Product&gt; ProductList) { // Initiate a Scanner Scanner scan = new Scanner(System.in); // **** VARIABLES **** int qty = 0; // Greet Customer System.out.println("Hello " + customer.getName()); // Loop through each item and ask for qty desired for (Product p : ProductList) { do { // Ask user for qty System.out.println("How many would you like for product: " + p.name); System.out.print("&gt; "); // Get input and set qty for the object qty = scan.nextInt(); } while (qty &lt; 0); // Validation p.setQty(qty); // Set qty for object qty = 0; // Reset count } // Cleanup scan.close(); } public static void PromptCustomerPayment (Customer customer) { // Initiate Scanner Scanner sc = new Scanner(System.in); // Variables String payment = ""; // Prompt User do { System.out.println("Would you like to pay in full? [Yes/No]"); System.out.print("&gt; "); payment = sc.next(); } while ((!payment.toLowerCase().equals("yes")) &amp;&amp; (!payment.toLowerCase().equals("no"))); // Check/set result if (payment.toLowerCase() == "yes") { customer.setPaidInFull(true); } else { customer.setPaidInFull(false); } // Cleanup sc.close(); } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload