title: Why is my program repeating itself. Java Error
body: <p>I am supposed to make the program give the number of pets and the percentage of how many that are below 5lbs, 5-10lbs, and over 10lbs. The program keeps repeating the statements and I don't know why. I've been working on this problem for the past couple of days and I still can't figure it out. At times it seems like I fixed it but then later on it happens again. Can anyone clarify why this is happening? I need help please.</p>
  
  <pre><code>import java.util.*;
  import java.util.Collections;
  import java.util.Comparator;
  import java.lang.Object;
  
  public class SetPetWeight 
  {
    public static void main(String[] args) {
      ArrayList&lt;Pet&gt; list = new ArrayList&lt;Pet&gt;();
      String name;
      String answer;
      int age;
      Double weight;
      Scanner keyboard = new Scanner(System.in);
  
      do
  {
  
        System.out.println("Enter a String for Pet name: ");
        name = keyboard.next(); 
  
        System.out.println("Enter an int for Pet age: ");
        age = keyboard.nextInt();
        if(age &lt;= 0)
          System.out.println("Error! Enter a real age");
  
        System.out.println("Enter a double for Pet weight: ");
        weight = keyboard.nextDouble();
        if(weight &lt;= 0)
          System.out.println("Error! Enter a real weight");
  
                  do
        {
          System.out.println("Do you want to enter another pet? Y/N");
          answer = keyboard.nextLine();
            keyboard.nextLine();
        } while (answer.equalsIgnoreCase("Y"));
  
  
      } while (name.length() &lt; 0 &amp;&amp; age &lt; 0 &amp;&amp; weight &lt; 0);
  
  
  
      System.out.println("The weight is now sorted by weight!");
      Collections.sort(list, Pet.SortByWeight);
      for (Pet p2 : list)
        p2.writeOutput();
  
      int average1 = 0;
      int average2 = 0;
      int average3 = 0;
  
  
      for (Pet p : list)
      {
        if(p.getWeight() &gt;= 0 &amp;&amp; p.getWeight() &lt;= 5)
        {
          ++average1;
        }
        else if(p.getWeight() &gt;= 5 &amp;&amp; p.getWeight() &lt;= 10)
        {
          ++average2;
        }
        else if(p.getWeight() &gt; 10)
        {
          ++average3;
        }
        System.out.println("The average of pets under 5 pounds:" + average1);
        System.out.println("The average of pets between 5 and 10 pounds:" +  average2);
        System.out.println("The average of pets over 10 pounds:" + average3);
  
  
      }
    }
  }
  </code></pre>
  
  <p>Pet Class that is used for the SetPetWeight class and is compiled correctly and is used for the array.</p>
  
  <pre><code> import java.util.*;
  
      public class Pet {
          private String name;
          private Integer age; // in years
          private double weight; // in pounds
  
          public void writeOutput() {
              System.out.println("Name: " + name);
              System.out.println("Age: " + age + " years");
              System.out.println("Weight: " + weight + " pounds");
          }
  
          public void set(String newName) {
              name = newName;
              // age and weight are unchanged.
          }
  
          public void set(int newAge) {
              if (newAge &lt;= 0) {
                  System.out.println("Error: illegal age.");
                  System.exit(0);
              } else
                  age = newAge;
              // name and weight are unchanged.
          }
  
          public void set(double newWeight) {
              if (newWeight &lt;= 0) {
                  System.out.println("Error: illegal weight.");
                  System.exit(0);
              } else
                  weight = newWeight;
              // name and age are unchanged.
          }
  
          public Pet(String name, int age, double weight) {
              this.name = name;
              this.age = age;
              this.weight = weight;
          }
  
          public String getName() {
              return name;
          }
  
          public int getAge() {
              return age;
          }
  
          public double getWeight() {
              return weight;
          }
  
          public static Comparator&lt;Pet&gt; SortByWeight = new Comparator&lt;Pet&gt;() 
          {
            public int compare(Pet pet1, Pet pet2)
            {
              return (int)(pet1.getWeight() - pet2.getWeight());
            }
          };
      }
  </code></pre>