188k views
1 vote
1 // Application contains a starting list of three products for sale2 // The user is prompted for additional items3 // After each new entry, the alphabetically sorted list is displayed4 import java.util.*;5 public class DebugNine36 {7 public static void main(String[] args)8 {9 ArrayListproducts = new ArrayList();10 products.add(shampoo);11 products.add(moisturizer);12 products.add(conditioner);13 Collections.sort(products);14 display(products);15 final String QUIT = "quit";16 String entry;17 Scanner input = new Scanner(System.in);18 System.out.print("\\Enter a product or " + QUIT + " to quit >> ");19 entry = input.nextLine();20 while(entry.equals("quit"))21 {22 products.add(entry);23 Collections.sort(products);24 display()25 System.out.print("\\Enter a product or " + QUIT + " to quit >> ");26 entry = input.nextLine();27 }28 public static void display(ArrayList products)29 {30 System.out.println("\\The size of the list is " + products.size());31 for(int x = 0; x == products.size(); ++x)32 System.out.println(products.get(x));33 }34 }35//Debugging Exercises, Chapter 9;Java Programming, Joyce Farraell, 8th

1 Answer

6 votes

Answer:

Here is the corrected code:

import java.util.*;

public class DebugNine36 { //class name

public static void main(String[] args) { //start of main method

ArrayList<String>products = new ArrayList<String>(); //creates an ArrayList of type String names products

products.add("shampoo"); //add shampoo to product array list

products.add("moisturizer"); //add moisturizer product array list

products.add("conditioner"); //add conditioner product array list

Collections.sort(products); //sort the elements in products array list

display(products); //calls display method by passing products array list

final String QUIT = "quit"; //declares a variable to quit the program

String entry; //declares a variable to hold product/element or quit

Scanner input = new Scanner(System.in); //creates Scanner object

System.out.print("\\Enter a product or " + QUIT + " to quit >> "); //prompts user to enter a product or enter quit to exit

entry = input.nextLine(); //reads the entry value from user

while(!entry.equals("quit")) { //loops until user enters quit

products.add(entry); //adds entry (product) to products array list

Collections.sort(products); //sorts the elements in products array list

display(products); //calls display method by passing products arraylist

System.out.print("\\Enter a product or " + QUIT + " to quit >> "); //keeps prompting user to enter a product or enter quit to exit

entry = input.nextLine(); } } //reads the entry value from user

public static void display(ArrayList products) { // method to display the list of products

System.out.println("\\The size of the list is " + products.size()); //displays the size of the array list named products

for(int x = 0; x < products.size(); ++x) //iterates through the arraylist products

System.out.println(products.get(x)); } } //displays each item/element in products array list

Step-by-step explanation:

In the code the following statement are corrected:

1.

ArrayListproducts = new ArrayList();

This gave an error: cannot find symbol

This is corrected to :

ArrayList<String>products = new ArrayList<String>();

2.

products.add(shampoo);

products.add(moisturizer);

products.add(conditioner);

Here shampoo moisturizer and conditioner are String type items that are to be added to the products so these strings have to be enclosed in quotation marks.

This is corrected to :

products.add("shampoo");

products.add("moisturizer");

products.add("conditioner");

3.

display();

This method is called without giving any arguments to this method. The method display takes an ArrayList as argument so it should be passed the arraylist products to avoid error that actual and formal argument lists differ in length .

This is corrected to :

display(products);

The screenshot of output is attached.

1 // Application contains a starting list of three products for sale2 // The user-example-1
User Alcaro
by
8.4k points