title: How can I make a Java method for simplifying a fraction?
body: <p>I have written a Fraction class, and am having trouble with the simplification.</p>
  
  <p>When I make the Fraction object, everything works fine, i just think my logic is messy with the simplification.</p>
  
  <p>(num and den are private variables in the class for numerator and denominator respectively)</p>
  
  <p>Here are my GCD and Simplify methods:</p>
  
  <pre><code>/**
   * Returns the absolute value of the greatest common divisor of this
   * fraction's numerator and denominator. If the numerator or denominator is
   * zero, this method returns 0. This method always returns either a positive
   * integer, or zero.
   * 
   * @return Returns the greatest common denominator
   */
  private int gcd() {
      int s;
      if (num &gt; den)
          s = den;
      else
          s = num;
      for (int i = s; i &gt; 0; i--) {
          if ((num % i == 0) &amp;&amp; (den % i == 0))
              return i;
      }
      return -1;
  }
  
  /**
   * Changes this fraction's numerator and denominator to "lowest terms"
   * (sometimes referred to as a "common fraction"), by dividing the numerator
   * and denominator by their greatest common divisor. This includes fixing
   * the signs. For example, if a fraction is 24/-18, this method will change
   * it to -4/3. If the numerator or denominator of the fraction is zero, no
   * change is made.
   */
  public void simplify() {
  
      if (isZero() == false) {// Making sure num or den is not zero.
          this.fixSigns(); // Fix signs first
  
          if (gcd() &gt; 1) {
              this.num = num / gcd();
              this.den = num / gcd();
          }
      }
  }
  </code></pre>