180 likes | 267 Views
Building Java Programs Chapter 2. PRIMITIVE DATA TYPES AND OPERATIONS. Objectives. Identify Java’s primitive data types and operators . Evaluate complex expressions using rules of precedence and mixed types. Data Types. A name for a category of data values that are all related.
E N D
Building Java ProgramsChapter 2 PRIMITIVE DATA TYPES AND OPERATIONS
Objectives • Identify Java’s primitive data types and operators. • Evaluate complex expressions using rules of precedence and mixed types.
Data Types • A name for a category of data values that are all related. • Different data types support different operations and behave differently. You can multiply numbers, but can you multiply strings? Can you add them? • Stored differently in computer memory as well. 27 = 00011011 “hello” = 01101000 00000101 1101100 1101100 01101111
Java’s Primitive Data Types Variations of int: byte, short, long Variations of double: float
Java’s Arithmetic Operators Most behave exactly like you would expect them to in math class, but we’ll learn about the exceptions soon.
Expressions • An expression is a simple value or a set of operations that produces a value. • Simplest expressions are literals of the data types we know. E.g. 27, “Seattle... Yay!", -1.7, false • More complex expressions can use operators and parentheses. E.g.: • 5 * 2 7 - 3 * (1.3 – (5.7 – 3)) • System.out.println( 5 * 2 / 3 + 6 );
Floating-Point Division • When dividing double or float values, it’s just like math class, but with some rounding errors here and there… • 5.0 / 2.0 = 2.5 • 10.0 / 3.0 = 3.3333333333333335(rounding error!) • 4.0 / 5.0 = 0.8 • 8.0 / 3.0 * 3.0 = 8.0
Integer Division… weird… • When dividing integers, we keep the whole part, but discard the fractional part. • 5 / 2 = 2 not 2.5 • 10 / 3 = 3 not 3.333… • 4 / 5 = 0 not 0.8 • 8 / 3 * 3 = ? 2 * 3 = ? 6 not 8!
Integer mod (%) • The mod operator computes the remainder of a division • 6 / 4 = 1, but it would have had a remainder 2 • Therefore, 6 % 4 = 2 • 20 % 7 = 15 % 4 = • 13857 % 2 = 13856 % 2 = • 8374 % 10 = 8374 % 100 = • 36 % 6 = 7 % 9 = 3 6 0 1 4 74 7 0
Think, Pair, Share… • In your notebook… • Write four expressions using only % and / that will get me the four individual digits of 7382. • 7382 • 7382 • 7382 • 7382 • *** Will your expressions work for other four-digit numbers? *** = 2 ????? % 10 = 8 / 10 % 10 ????? = 3 / 100 % 10 ????? = 7 ????? / 1000 % 10
Operator Precedence • Usually, we evaluate expressions left-to-right, but certain operations take precedence over others and get evaluated first. • Parentheses can always override precedence. • Precedence table:
Precedence Examples • 2 + 2 * 5 = 12 not 20 • 3 * 3 + 2 * 2 = 13 not 22 • 7 + 5 / 2 * 3 – 4 = 9 not 14 • +3 * -4 = -12 • 3 + -4 = -1 • 3 - -4 = 7
Mixing Types • When doing an operation on an int and a double, the intgets promoted to a double. • 1 * 4.682 = 4.682 • 7 / 2.0 = 3.5 • 5 * 1.0 / 2 = 3.0 • 7.0 / 2 – 7 / 2 = ? 3.5 – 3 = ? 0.5
Casting • You can explicitly convert a value from one data type to another by casting. • (double) 99 = 99.0 • (int) 2.5 = 2 • ((double) 7) / 2 = 3.5 • (int) 2.5 * 3.0 = 6.0 • (int) (2.5 * 3.0) = 7
In your notebook… 4.0 / 2 * 9 / 2 2.0 * 9 / 2 18.0 / 2 9.0
In your notebook… 12 / 7 * 4.4 * 2 / 4 1 * 4.4 * 2 / 4 4.4 * 2 / 4 8.8 / 4 2.2
In your notebook… 9 / 2.0 + 7 / 3 – 3.0 / 2 4.5 + 7 / 3 – 3.0 / 2 4.5 + 2 – 3.0 / 2 4.5 + 2 – 1.5 6.5 – 1.5 5.0
In your notebook… 53 / 5 / (0.6 + 1.4) / 2 + 13 / 2 53 / 5 / 2.0 / 2 + 13 / 2 10 / 2.0 / 2 + 13 / 2 5.0 / 2 + 13 / 2 2.5 + 13 / 2 2.5 + 6 8.5