Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Assignment statements using the same variable in LHS and RHS Previously discussed • Assignment statement: • The assignment statement in the Java programming language instructs the computer to update the value stored in a variable • Syntax of an assignment statement: VariableName = Expression ; Previously discussed (cont.) • Meaning of the assignment statement: • The expression on the RHS of the "=" operator is first computed • The computed value is then assigned to the receiving variable Assignment statements with the same variable on the LHS and RHS • Consider the following program: public class Assign01 { public static void main(String[] args) { double x = 1.0; // x = 1.0 System.out.print("Before: x = "); System.out.println(x); x = x + 4.0; // x is used in the LHS and RHS System.out.print("After: x = "); System.out.println(x); } } Assignment statements with the same variable on the LHS and RHS (cont.) • Explanation: • You need to realize that the symbol "=" does not represent an equality relationship • The symbol "=" denotes an assignment operation: 1. The computer will first evaluate the LHS "x + 4.0": LHS = x + 4.0 = 1.0 + 4.0 = 5.0 (x contains 1.0) Assignment statements with the same variable on the LHS and RHS (cont.) 2. Then the result 5.0 is assigned to the receiving variable x: x = 5.0; Therefore, after executing the statement "x = x + 4.0", the variable x contains the value 5.0 Assignment statements with the same variable on the LHS and RHS (cont.) • Example Program: (Demo above code) – Prog file: http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/Progs/ Assign01.java • How to run the program: • Right click on link and save in a scratch directory • To compile: javac Assign01.java • To run: java Assign01 Example program: interest computation • Problem statement: Write a Java program that read in the following information: • A principle amount principle • A interest rate interest_rate (given in percents) The program prints the principle amount for the next 3 years (with the interest added to the principle) Example program: interest computation (cont.) • Algorithm: • Let p0 = principle and i = interest_rate • The principle amount after 1 year is: p1 = (1.0 + i/100.0)×p0 • The principle amount after 2 year is: p2 = (1.0 + i/100.0)×p1 • The principle amount after 3 year is: p3 = (1.0 + i/100.0)×p2 Example program: interest computation (cont.) • A preliminary version of the Java program: import java.util.Scanner; public class Interest01 { public static void main(String[] args) { double principle, interest_rate; double p1, p2, p3; Scanner in = new Scanner(System.in); // Construct a Scanner object System.out.print("Enter principle = "); principle = in.nextDouble(); // Read in principle System.out.print("Enter interest rate = "); interest_rate = in.nextDouble(); // Read in interest rate Example program: interest computation (cont.) p1 = (1.0 + interest_rate/100.0) * principle; System.out.print("Principle after 1 year = "); System.out.println(p1); p2 = (1.0 + interest_rate/100.0) * p1; System.out.print("Principle after 2 year = "); System.out.println(p2); p3 = (1.0 + interest_rate/100.0) * p2; System.out.print("Principle after 3 year = "); System.out.println(p3); } } Example program: interest computation (cont.) • Comments: • This program works, but it uses an unnecessarily large number of variables • We can use the variable principle to record the year-toyear principle amount. Example program: interest computation (cont.) • Example: – Prog file: http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/Progs/I nterest01.java • How to run the program • Right click on link and save in a scratch directory • To compile: javac Interest01.java • To run: java Interest01 Advice in writing programs • Programming principle: • Each variable in the program stores one piece of information • A good programming practice is to assign a meaning to each variable in the program • Giving a meaning to each variable will help you understand the steps of the algorithm Improved program to compute interest • We will re-write the preliminary version of the program using the following meaning of the variables: • principle = the current amount of principle • interest_rate = interest rate paid Improved program to compute interest (cont.) • Java program: import java.util.Scanner; public class Interest01 { public static void main(String[] args) { double principle, interest_rate; Scanner in = new Scanner(System.in); // Construct a Scanner object System.out.print("Enter principle = "); principle = in.nextDouble(); // Read in principle System.out.print("Enter interest rate = "); interest_rate = in.nextDouble(); // Read in interest rate Improved program to compute interest (cont.) principle = (1.0 + interest_rate/100.0) * principle; System.out.print("Principle after 1 year = "); System.out.println(principle); principle = (1.0 + interest_rate/100.0) * principle; System.out.print("Principle after 2 year = "); System.out.println(principle); principle = (1.0 + interest_rate/100.0) * principle; System.out.print("Principle after 3 year = "); System.out.println(principle); } } Improved program to compute interest (cont.) • Explanation: • By storing the computed value "(1.0 + interest_rate/100.0) * principle" back into the variable principle, this variable principle will contains the correct value to be used in the next computation !!! Improved program to compute interest (cont.) • Example: – Prog file: http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/Progs/I nterest02.java • How to run the program: • Right click on link and save in a scratch directory • To compile: javac Interest02.java • To run: java Interest02