Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Java Basics: Data Types, Variables, and Loops “ If debugging is the process of removing software bugs, then programming must be the process of putting.

Similar presentations


Presentation on theme: "1 Java Basics: Data Types, Variables, and Loops “ If debugging is the process of removing software bugs, then programming must be the process of putting."— Presentation transcript:

1 1 Java Basics: Data Types, Variables, and Loops “ If debugging is the process of removing software bugs, then programming must be the process of putting them in. ” - Edsger Dijkstra Plan for the Day Variables - symbols or names that represent values Data Types - the kind of value does a variable represent int - integers, such as 1024, -77, 2, 0 double - real numbers, or actually (good) approximations of real numbers. For example, 3.14159, -0.023343 char - single characters, which are enclosed in single quotes in Java: ‘ $ ’, ‘ a ’, ‘ * ’, ‘ R ’ boolean - logical values: true or false Arithmetic operators (and another use of +) + represents addition in Java, but also the concatenation or appending of two strings Based on slides at buildingjavaprograms.com

2 2 Data types type: A category or set of data values. Constrains the operations that can be performed on data Many languages ask the programmer to specify types // Variable myNumber stores integer values, and currently // has the value 3 int myNumber = 3; Internally, computers store everything as 1s and 0s 104  01101000 "hi"  01101000110101

3 3 Java's primitive types primitive types: Java’s built-in data types for numbers, text characters and logic values. 8 primitive types in Java Non-primitive types are object types We'll use these four primitive types in this class: NameDescription Examples int integers (whole numbers) 42, -3, 0, 926394 double real numbers 3.14, -0.25, 9.0 char single text characters 'a', 'X', '?', '\n' boolean logical values true, false

4 4 Expressions expression: A value or operation that computes a value. Example: 3 + 9 * 2 The simplest expression is a literal value. 84 -2.11 A complex expression can use operators and parentheses. (-4.5 + 2.11) * 8 // * represents multiplication

5 5 Arithmetic operators Operators we will use often in cs 305j: + addition - subtraction (or negation) * multiplication / division % modulus (a.k.a. remainder) As a program runs, its expressions are evaluated. 1 + 1 evaluates to 2 System.out.println(3 * 4); //prints 12 How would we print the text 3 * 4 on the screen?

6 6 Integer division with / When we divide integers, the quotient is also an integer. 14 / 4 is 3, not 3.5 3 4 4 ) 14 10 ) 45 12 40 2 5 More examples: 32 / 5 is 6 84 / 10 is 8 156 / 100 is 1 Dividing by 0 causes an error when your program runs.

7 7 Integer remainder with % The % operator computes the remainder from integer division. 14 % 4 is 2, since 14 divided by 4 is 3, with remainder 2 33 % 5 is 3, since 218 divided by 5 is 6, with remainder 3 What is the result of the following operations? 45 % 6 2 % 2 8 % 20 11 % 4

8 8 Applications of % Operator How do we… Obtain last (ones) digit of a number. Ex: From 432115, get 5 Obtain last 4 digits of a SSN. Ex: For SSN 552689321, get 9321 Determine whether a number is odd. Exercise: Suppose some unknown integer (greater than 100) is stored in variable n. How do you obtain the tens digit?

9 9 Operator Precedence precedence: Order in which operators are evaluated. Operators of same precedence level evaluate left- to-right. 1 - 2 - 3 is (1 - 2) - 3 which is -4 */% have a higher precedence than +- 1 + 3 * 4 is 13 6 + 8 / 2 * 3 6 + 4 * 3 6 + 12 is 18 Parentheses can force a certain order of evaluation: (1 + 3) * 4 is 16

10 10 Precedence examples 1 * 2 + 3 * 5 % 4 \_/ | 2 + 3 * 5 % 4 \_/ | 2 + 15 % 4 \___/ | 2 + 3 \________/ | 5 1 + 8 % 3 * 2 - 9 \_/ | 1 + 2 * 2 - 9 \___/ | 1 + 4 - 9 \______/ | 5 - 9 \_________/ | -4

11 11 Precedence questions What values result from the following expressions? 9 / 5 695 % 20 7 + 6 * 5 7 * 6 + 5 248 % 100 / 5 6 * 3 - 9 / 4 (5 - 7) * 4 6 + (18 % (17 - 12))

12 12 Real numbers (type double ) Java can manipulate real numbers (numbers with a decimal point): 6.022, -42.0, 2.143e17 The operators +-*/%() all still work with double. / produces a more precise answer: 15.0 / 2.0 is 7.5 % is not typically used on real numbers Precedence is the same: () before */% before +-

13 13 Real number example 2.0 * 2.4 + 2.25 * 4.0 / 2.0 \___/ | 4.8 + 2.25 * 4.0 / 2.0 \___/ | 4.8 + 9.0 / 2.0 \_____/ | 4.8 + 4.5 \____________/ | 9.3

14 14 Precision Issues with Reals Computations with real numbers are not always as precise as we expect (though the answer we get is close): System.out.println ( 11.0 - 10.91); We expect: 0.09 What’s printed: 0.08999999999999999 Computers represent some real numbers in an imprecise way internally, so some calculations with them are off by a very slight amount. We can usually tolerate the precision errors, but later we will learn some ways to produce a better output for examples like above.

15 15 Mixing types When int and double are mixed, the result is a double. 4.2 * 3 is 12.6 The conversion is per-operator, affecting only its operands. 7 / 3 * 1.2 + 3 / 2 \_/ | 2 * 1.2 + 3 / 2 \___/ | 2.4 + 3 / 2 \_/ | 2.4 + 1 \________/ | 3.4 3 / 2 is 1 above, not 1.5. 2.0 + 10 / 3 * 2.5 - 6 / 4 \___/ | 2.0 + 3 * 2.5 - 6 / 4 \_____/ | 2.0 + 7.5 - 6 / 4 \_/ | 2.0 + 7.5 - 1 \_________/ | 9.5 - 1 \______________/ | 8.5

16 16 String concatenation string concatenation: Using + between a string and another value to make a longer string. "hello" + 42 is "hello42" 1 + "abc" + 2 is "1abc2" "abc" + 1 + 2 is "abc12" 1 + 2 + "abc" is "3abc" "abc" + 9 * 3 is "abc27" "1" + 1 is "11" 4 - 1 + "abc" is "3abc" Use + to print a string and an expression's value together. System.out.println("Grade: " + (95.1 + 71.9) / 2); Output: Grade: 83.5

17 17 Receipt example What's bad about the following code? public class Receipt { public static void main(String[] args) { // Calculate total owed, assuming 8% tax / 15% tip System.out.println("Subtotal:"); System.out.println(38 + 40 + 30); System.out.println("Tax:"); System.out.println((38 + 40 + 30) *.08); System.out.println("Tip:"); System.out.println((38 + 40 + 30) *.15); System.out.println("Total:"); System.out.println(38 + 40 + 30 + (38 + 40 + 30) *.08 + (38 + 40 + 30) *.15); } } The subtotal expression (38 + 40 + 30) is repeated So many println statements

18 18 Variables variable: A piece of the computer's memory that is given a name and type, and can store a value. Like preset stations on a car stereo, or cell phone speed dial: We use variables to store the result of a calculation, so we can use it later

19 19 Variable Declaration variable declaration: Sets aside memory for storing a value of some specified type. Variables must be declared before they can be used. A declaration specifies the variable’s name and type. The name is an identifier. Declaration Syntax: ; -- Example: int x; -- Example: double myGPA; Multiple variable declarations on same line: double sideA, sideB, sideC; x myGPA

20 20 Assignment Declaring a variable: sets aside a chunk of memory for storing values assignment: Stores a value in a variable. The value can be an expression; the variable stores its result. Syntax: = ; int x; x = 3; double myGPA; myGPA = 1.0 + 2.25; x3 myGPA3.25

21 21 Using variables Once given a value, a variable can be used in expressions: int x; x = 3; System.out.println("x is " + x); // x is 3 System.out.println(5 * x - 1); // 5 * 3 - 1 You can assign a value more than once: int x; x = 3; System.out.println(x + " here"); // 3 here x = 4 + 7; System.out.println("now x is " + x); // now x is 11 x3 x11

22 22 Declaration/initialization A variable can be declared/initialized in one statement. Syntax: = ; double myGPA = 3.95; int x = (11 % 3) + 12; x14 myGPA3.95

23 23 Assignment and algebra Assignment uses =, but it is not an algebraic equation. X = … ; means “store the value of the expression on the right in the memory set aside for x” x = 3; means “store 3 in the memory allocated for x” What happens here? int x = 3; x = x + 2; // ??? x3 x5

24 24 Assignment and types A variable can only store a value of its own type. int x = 2.5; // ERROR: incompatible types An int value can be stored in a double variable. The value is converted into the equivalent real number. double myGPA = 4; double avg = 11 / 2; Why does avg store 5.0 and not 5.5 ? myGPA4.0 avg5.0

25 25 Compiler errors A variable can't be used until it is assigned a value. int x; System.out.println(x); // ERROR: x has no value You may not declare the same variable twice. int x; int x; // ERROR: x already exists int x = 3; int x = 5; // ERROR: x already exists How can this code be fixed?

26 26 Printing a variable's value Use + to print a string and a variable's value on one line. double grade = (95.1 + 71.9 + 82.6) / 3.0; System.out.println("Your grade was " + grade); int students = 11 + 17 + 4 + 19 + 14; System.out.println("There are " + students + " students in the course."); Output: Your grade was 83.2 There are 65 students in the course.

27 27 Receipt question Improve the receipt program using variables. public class Receipt { public static void main(String[] args) { // Calculate total owed, assuming 8% tax / 15% tip System.out.println("Subtotal:"); System.out.println(38 + 40 + 30); System.out.println("Tax:"); System.out.println((38 + 40 + 30) *.08); System.out.println("Tip:"); System.out.println((38 + 40 + 30) *.15); System.out.println("Total:"); System.out.println(38 + 40 + 30 + (38 + 40 + 30) *.15 + (38 + 40 + 30) *.08); }

28 28 Receipt answer public class Receipt { public static void main(String[] args) { // Calculate total owed, assuming 8% tax / 15% tip int subtotal = 38 + 40 + 30; double tax = subtotal *.08; double tip = subtotal *.15; double total = subtotal + tax + tip; System.out.println("Subtotal: " + subtotal); System.out.println("Tax: " + tax); System.out.println("Tip: " + tip); System.out.println("Total: " + total); }

29 29 Exercises What is the result? 1. int x = 4; x = x + 3; 2. 5 = 1 + 4; 3. Double y = 6; y = 2 * y;

30 30 What is the Output? 1. int average = (9 + 8)/2; System.out.println(average); average = (average * 2 + 10 + 4)/4; System.out.println(average); 2. System.out.println(3 + 2 + “friends are coming over”); 3. System.out.println(“Call “ + 9 + 1 + 1);

31 31 Real or Integer? Categorize each of the following quantities by whether an int or double variable would best to store it: 1. Temperature in degrees 5. Number of rainy days this month 2. Population of lemmings 6. Number of miles traveled today 3. Your grade point average 7. A person’s weight in pounds 4. The average of a collection of exam scores credit: Kate Deibel, http://www.cs.washington.edu/homes/deibel/CATs/ http://www.cs.washington.edu/homes/deibel/CATs/ Integer (int)Real Number (double)

32 32 Exercise Write a program that assigns the length and width of a rectangle to two variables, and then prints the area of the rectangle. Sample Output: Length = 4 Width = 3 The triangle’s area is 12.

33 33 Exercise using Variables For student Jane Doe: Exam 1 score: 95 Exam 2 score: 89 Exam 3 score: 93 Write a program that displays Jane Doe’s exam average. Output: On exam 2, Jane Doe made 89. Her exam average is 92.333333.

34 34 Increment and Decrement Operators The increment operator ++ adds 1 to a number result ++; // The value stored in result is increased by 1 The decrement operator -- subtracts 1 from a number result --; // value stored in result is decreased by 1 These operators can come before or after the variable/value: ++count; --count;

35 35 Example - Increment/Decrement Output? int count = 1; int n = 2 + count++; System.out.println(“count = “ + count); System.out.println(“n = “ + n); What about now: int count = 1; int n = 2 + ++count;

36 36 Assignment Operators Combine assignment with an operation Use whenever you want to apply some operation to the value of a variable, and store the result in that variable Example: count += 5; is equivalent to count = count + 5; Example: int result = 2; result *= 4; // result = ?

37 37 Assignment Operators Example: int count1 = 3; int count2 = 6; int product *= count1 + count2; // what is product? equivalent to int product = product * (count1 + count2); Example: String s = “hello”; S += “ world”; // what is s? equivalent to S = s + “ world”;


Download ppt "1 Java Basics: Data Types, Variables, and Loops “ If debugging is the process of removing software bugs, then programming must be the process of putting."

Similar presentations


Ads by Google