Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mathematical Calculations in Java Mrs. C. Furman.

Similar presentations


Presentation on theme: "Mathematical Calculations in Java Mrs. C. Furman."— Presentation transcript:

1 Mathematical Calculations in Java Mrs. C. Furman

2 Review of Declaring Variables int sum; typeidentifier This statement declares sum. It reserves a space in memory large enough to store an int. It’s current value is set to 0.

3 Assignments Statements We are initializing sum to 120. We use the assignment operator ( = ) to give a value to a variable. This is not used for comparison. (Does sum equal 120?) sum = 120; identifer assignment value operator

4 Variables- The value of a variable can be changed. public class Geometry { public static void main (String [] args) { int sides = 7; System.out.println (“A heptagon has “ + sides + “ sides.”); sides = 10; System.out.println (“A decagon has “ + sides + “ sides.”); sides = 12; System.out.println (“A dodecagon has “ + sides + “ sides.”); } In Memory: sides 7 10 12

5 Output of previous code Output: A heptagon has 7 sides. A decagon has 10 sides. A dodecagon has 12 sides. What is happening in memory? When ever sides is assigned a new value, it writes over the previous value. So, when sides is assigned 10, it “forgets” the 7, and now holds the 10. This happens again when it is assigned 12… it “forgets” the 10 and now holds 12. Once it is assigned a new value, the old one is lost forever.

6 Assignment Statements sides = 10; The value on the right is given to the variable on the left. This does not mean “equals” for comparison!! The value that is assigned must be of the same type. sides = 5.5; This will generate an type mismatch error.

7 Arithmetic Expressions Expressions: combinations of operators and operands to perform calculations. The value calculated does not have to be a number, but often is.

8 Arithmetic Operators int and double operators: + addition -subtraction * multiplication /division % modulus or remainder

9 Modulus Operator % % (mod) remainder operator – returns the remainder when you divide 2 integers. Example: int result = 7 % 3; 2 3 7 6 1 Remainder result 1

10 2 Types of Division 1. integer division – when both operands are of type integer, we truncate the fractional part. result = 7 / 3; 2. floating point division – if one or both operands are floating point numbers, then the fractional part is kept. double dresult = 7.0 / 3.0; result 2 dresult 2.333333333…

11 Order of Operations Java has to follow the order of operations when computing an expression As a reminder if operators are on the same level, we work left to right. Assignments work right to left. Parenthesis Multiplication, Division, Modulus Addition, Subtraction, String Concatenation Assignment

12 + with Strings + is the concatenation operator with Strings. It is used to “add” Strings together. I put “add” in double quotes, because Strings are called immutable… meaning their value can never change. (Read next slide)

13 Strings are immutable This means that Strings can never change. When using methods or operators on Strings, we aren’t changing Strings rather creating new String. Recall: String class is very special. It is the only class that we can create objects without using the keyword “new”. When ever there is a String literal, or addition of Strings, etc. Strings are automatically created.

14 String addition System.out.println (“A dodecagon has “ + sides + “ sides.”); Working left to right… the String “A dodecagon has “ is being added with an int. The integer is “promoted” to a String… a new String is created: “12” The 2 Strings are added together: “A dodecagon has 12” Now we add this String with the String “ sides.” “A dodecagon has 12 sides.” This is a brand new String that is output to the user.

15 The Problem with Concatenation System.out.println (“The value is “ + 24 + 25); Every time Java sees a String it promotes what is being added to also be a String… so… When the first to pieces are added our result is a String: “The value is 24” 24 is no longer and int!! When this is concatenated with 25, we get our output above. Output: The value is 2425

16 Fixing the Problem We need to use parenthesis: System.out.println (“The value is “ + (24 + 25)); By using parenthesis, we force Java to add 24 and 25 first, resulting in 49. Then we do our String addition… 49 is promoted to a String, and our result is…. The value is 49

17 Type Conversions Sometimes we will need to change the type of a variable in order to use it with another variable or value. Values can be widened or narrowed. Widening: If you are going from a type that has a smaller memory storage to one with a larger memory storage, you are widening. int to double Narrowing: If you are going from a type with a larger memory storage to a smaller memory storage, you are narrowing. double to int *** When doing a Narrowing conversion, we run the risk of losing data.

18 Types of Conversions There are 3 types of conversions: 1. Arithmetic Promotion 2. Assignment Conversion 3. Type Casting

19 Arithmetic Promotion This is a widening conversion that will change the type so that arithmetic operations can be performed. A perfect example is concatenating a String with an int. Another example: double dresult = 7.0 / 2; 2 gets promoted to a double for floating point division. This type of conversion is done automatically, and does not require any intervention on the part of the programmer.

20 Assignment Conversion If we assign an int to a double, we are converting it to a double. int startingValue = 3; double targetValue = startingValue; The 3 stored in startingValue is changed to a double, and then assigned. We can not go the other way around: startingValue = targetValue; This will generate a type mismatch error.

21 Type Casting We can force a variable to change type by using typecasting. In front of the variable you wish to change, put the new type in parenthesis. Example: double ans = (double)7 / 3; This will change 7 into a double so that we are doing floating point division rather than integer division.21

22 Typecasting a double an int public class Money { double amount; public Money (double initialAmt) { amount = initialAmt; } public int dollarAmount() { return (int)amount; } By typecasting amount an int, we truncate (remove) the decimal portion of the number. It is NOT rounded. Ex. if amount = 5.50; the value being returned by return (int)amount; is 5.

23 Increment / Decrement Operators increment operator ++ : adds 1 to any integer or floating point. decrement operator -- : subtracts 1 from the value. Example: count++; does the same as count = count + 1;

24 Incrementing Continued The operator can be used before or after the variable. When used in a statement you must be very careful. int count = 15; total = count ++; Because of Order of Operations, total is assigned count’s value, then count is incremented. ++count ; is the same as count++; total 15 count 16

25 Increment Placement Continued total = ++count; The value of count is changed first. total is changed second. total 15 17 count 16 17

26 Compound Operators Short hand: These compound operator takes var = var operator and replaces it with var operator= See the examples on the right. +=j = j +5 j += 5 -=j = j – 5 j -= 5 *=j = j * 5 j *= 5 /=j = j / 5 j /= 5 %=j = j % 5 j %= 5


Download ppt "Mathematical Calculations in Java Mrs. C. Furman."

Similar presentations


Ads by Google