// 10/2/2017
// Modularization:
// Advantages: 1. Easier to code and debug
// 2. Readability
// 3. Easier to modify
// Summary:  method calls to void method passing parameters
// as a literal, variable, and expression.
// Showed how local variables can be named the same in different methods.
// And we showed how PASS BY VALUE works.

import java.util.Scanner;

/** This class illustrates passing parameters to methods
  */
public class MethodParams {
  /** main method calls two different methods and passes values 
    *  
    */
  public static void main(String[] args)   {
    
     double num1=5.1, num2=26.7;
     print10plusValue(num2);
     System.out.println("After call to print10plusValue num2="+num2);
     // The value of an expression is getting passed as a paramater
     printSum(num2, 8.9+num1);
     // The answer of a method call can get passed as a parameter
     print10plusValue( Math.sqrt(88) );
  }
  /** 
   * method printSum accepts 2 double values and displays their sum.
   * @param val   first value to be added.
   * @param val2  second value to be added.
   */
  public static void printSum(double val, double val2)  {
    // sum is called a local variable
     double sum=val+val2;
     System.out.printf("Sum in printSum is: %4.2f.\n",sum);
  }  
  /** 
   * method print10plusValue
   * accepts 1 double value and displays the sum of 10 plus value.
   * @param val   value to be added to 10.
   */  
  public static void print10plusValue(double val)   {
     val+=10;
     System.out.printf("Value in method print10plusValue is: %4.2f.\n",val);
     // this sum is local to printValue function and is NOT
     // confused with the local variable sum in printSum
     double sum;
     sum=5+10;
  }  
    
    
    
}