Best writers. Best papers. Let professionals take care of your academic papers

Order a similar paper and get 15% discount on your first order with us
Use the following coupon "FIRST15"
ORDER NOW

Stuck trying to use a loop to iterate through the ingredients.

Stuck trying to use a loop to iterate through the ingredients. I am getting an error code I can make no sense of?

Did I initialize the variable at the start incorrectly?

      private ArrayList<String> recipeIngredients;
error.PNG

SteppingStone5_recipe.java is the starter code I have to complete.

SteppingStone5_RecipeTest.java is the tester code I have to run against it.

Both are included below.

package SteppingStones;
import java.util.Scanner;
import java.util.ArrayList;
/*
 * 
 */
public class SteppingStone5_Recipe {
    private String recipeName;
    /**
     * Add three variables:
     *
     * 1. a variable 'servings' to store how many people the recipe will feed;
     *
     * 2. an ArrayList variable 'recipeIngredients' to store the text for the
     * names* (recipeName) each recipe ingredient added
     *
     * 3. a variable totalRecipeCalories
     */
    private int servings;
    private ArrayList<String> recipeIngredients;
    private double totalRecipeCalories;
    // Add mutators and accessors for the class variable.
    public String getRecipeName() {
        return recipeName;
    }
    public void setRecipeName(String recipeName) {
        this.recipeName = recipeName;
    }
    public int getServings() {
        return servings;
    }
    public void setServings(int servings) {
        this.servings = servings;
    }
    public ArrayList<String> getRecipeIngredients() {
        return recipeIngredients;
    }
    public void setRecipeIngredients(ArrayList<String> recipeIngredients) {
        this.recipeIngredients = recipeIngredients;
    }
    public double getTotalRecipeCalories() {
        return totalRecipeCalories;
    }
    public void setTotalRecipeCalories(double totalRecipeCalories) {
        this.totalRecipeCalories = totalRecipeCalories;
    }
    // End mutators and accessors
    public SteppingStone5_Recipe() {
        this.recipeName = "";
        this.servings = 0; // <--- assignment value with appropriate data type
        this.recipeIngredients = new ArrayList<>(); // <-- assignment value for empty ArrayList
        this.totalRecipeCalories = 0.0;
    }
    public SteppingStone5_Recipe(String recipeName, int servings, ArrayList<String> recipeIngredients,
            double totalRecipeCalories) // <-- use appropriate data type for the ArrayList and the servings arguments
    {
        this.recipeName = recipeName;
        this.servings = servings;
        this.recipeIngredients = recipeIngredients;
        this.totalRecipeCalories = totalRecipeCalories;
    }
    public void printRecipe() {
        /**
         * Declare an int variable singleServingCalories. Assign
         * singleServingCalories to the totalRecipeCalories divided by the
         * servings
         */
        double singleServingCalories = (totalRecipeCalories / servings);
        /**
         * Print the following recipe information: Recipe: <<recipeName>>
         * Serves:
         * <<servings>> Ingredients: <<Ingredient1>> <<Ingredient2>> ... <<Last
         *
         * Ingredient>>
         * Each serving has <<singleServingCalories>> Calories.
         * HINT --> Use a for loop to iterate through the ingredients
         */
        System.out.println ("Recipe: " + getRecipeName());
        System.out.println ("Serves: " + getServings() + " servings.");
        System.out.println ("Ingredients:");
           
        for (int i = 0; i < recipeIngredients.size(); i++){
            Ingredient currentIngredient = recipeIngredients.get (i);
            String currentIngredientName = currentIngredient.getIngredientName();
            }
        System.out.println ("total Calories per serving: " + singleServingCalories);
    }
    public static SteppingStone5_Recipe createNewRecipe() {
        double totalRecipeCalories = 0.0;
        ArrayList<Ingredient> recipeIngredients = new ArrayList();
        boolean addMoreIngredients = true;
        Scanner scnr = new Scanner(System.in);
        System.out.println("Please enter the recipe name: ");
        String recipeName = scnr.nextLine();
        System.out.println("Please enter the number of servings: ");
        int servings = scnr.nextInt(); // correct data type & Scanner assignment method for servings variable
        do {
            Ingredient thisIngredient = new Ingredient();
            System.out.println("Please enter the ingredient name or type end if you are finished entering ingredients: ");
            String ingredientName = scnr.next();
            if (ingredientName.toLowerCase().equals("end")) {
                addMoreIngredients = false;
            } else {
                //is this needed??: thisIngredient.setNameOfIngredient(ingredientName); // adding ingredient to recipe
                /**
                 * Add the ingredient name to recipeIngredients
                 */
                System.out.println("Please enter the ingredient amount: ");
                float ingredientAmount = scnr.nextFloat();
                System.out.println("Please enter the ingredient Calories: ");
                int ingredientCalories = scnr.nextInt();
                /**
                 * Add the total Calories from this ingredient
                 * (ingredientCalories * ingredientAmount) to the
                 * totalRecipeCalories
                 */
                totalRecipeCalories = totalRecipeCalories + (ingredientCalories * ingredientAmount);
            recipeIngredients.add(thisIngredient);
            }
        } while (addMoreIngredients);
        SteppingStone5_Recipe recipe1 = new SteppingStone5_Recipe(recipeName, servings, recipeIngredients, totalRecipeCalories);
        return recipe1;
    }
}
 Stuck trying to use a loop to iterate through the ingredients. package SteppingStones;
import java.util.ArrayList;
public class SteppingStone5_RecipeTest {
    public static void main(String[] args) {
        // Create first recipe using constructor and setter methods
        ArrayList<String> recipeIngredients = new ArrayList<>();
        recipeIngredients.add("Peanut butter");
        recipeIngredients.add("Jelly");
        recipeIngredients.add("Bread");
        SteppingStone5_Recipe recipe1 = new SteppingStone5_Recipe(
                "Peanut butter & jelly sandwich", 2, recipeIngredients, 300);
        System.out.println("RECIPE 1");
        recipe1.printRecipe();
        // Now change some of the values using mutator methods
        recipe1.setRecipeName("Turkey sandwich");
        recipe1.setServings(5);
        recipe1.setTotalRecipeCalories(500);
        System.out.println(); // blank line
        System.out.println("RECIPE 1 (Modified)");
        // printRecipe() will show these values have changed but 
        // recipeIngredients was not modified
        recipe1.printRecipe();
        System.out.println(); // blank line
        System.out.println("RECIPE 2");
        // Create second recipe using our static createNewRecipe() method
        // This is similar to a well-known design pattern called Factory
        SteppingStone5_Recipe recipe2 = SteppingStone5_Recipe.createNewRecipe();
        // No need to set hard-coded values here as createNewRecipe() will
        // prompt the user for ingredient info
        recipe2.printRecipe();
 
"Looking for a Similar Assignment? Order now and Get 10% Discount! Use Code "Newclient"