Reputation: 1
I cant get my array for ingredients to print in the end where the for loop is, it only prints the first element which is the first ingredient entered.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""'
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String recipeName = "";
ArrayList<String> ingredientList = new ArrayList();
//String newIngredient = "";
boolean addMoreIngredients = true;
System.out.println("Please enter the recipe name: ");
recipeName = scnr.nextLine();
OuterLoop:
do {
System.out.println("Would you like to enter an ingredient? (y or n)");
String reply = scnr.nextLine().toLowerCase();
switch (reply)
case "y" :
System.out.println("Please Enter Ingredient Name: ");
ingredientList.add(scnr.nextLine());
//Stores/add's user input in ingredient list array
break; //Breaks to "Would you like to enter more ingredients
case "yes" :
System.out.println("Please Enter Ingredient Name: ");
ingredientList.add(scnr.nextLine());
break; //Breaks to "Would you like to enter more ingredients
case "no":
break OuterLoop; //Break to end program if n selected
case "n":
break OuterLoop; //Break to end program if n selected
default:
System.out.println("Invalid entry, please enter Y or N");
break; //Breaks to "Would you like to enter more ingredients
}
} while (addMoreIngredients);
for (int i = 0; i < ingredientList.size(); i++) {
String ingredient = ingredientList.get(i);
System.out.println(ingredient);
break;
}
}
}
Upvotes: 0
Views: 59
Reputation: 1527
The break
in the for-loop prematurely ends the loop.
for (int i = 0; i < ingredientList.size(); i++) {
String ingredient = ingredientList.get(i);
System.out.println(ingredient);
break;
}
Remove that break
and it should iterate over all of the elements in the List. Note that you can simplify the iteration with either a for-each loop...
for (String ingredient : ingredientList) {
System.out.println(ingredient);
}
.. or using the Stream API ..
ingredientList.stream().forEach(ingredient -> System.out.println(ingredient));
Upvotes: 2