3 - Variables Expressions
3 - Variables Expressions
104 01101000
"hi" 0110100001101001
h 01101000
1
Expressions
expression: A value or operation that computes a value.
• Examples: 1 + 4 * 5
(7 + 2) * 6 / 3
42
"Hello, world!"
The simplest expression is a literal value.
A complex expression can use operators and parentheses.
2
Arithmetic operators
operator: Combines multiple values or expressions.
+ addition
- subtraction (or negation)
* multiplication
/ division
% modulus ( remainder)
3
Integer division with /
When we divide integers, the quotient is also an integer.
14 / 4 is 3, not 3.5
More examples:
32 / 5 is 6
84 / 10 is 8
156 / 100 is 1
4
Integer remainder with %
The % operator computes the remainder from integer division.
14 % 4 is 2
218 % 5 is 3 What is the result?
3 43 45 % 6
4 ) 14 5 ) 218 2 % 2
12 20 8 % 20
2 18
15 11 % 0
3
Applications of % operator:
Obtain last digit of a number: 230857 % 10 is 7
Obtain last 4 digits: 658236489 % 10000 is
6489
See whether a number is odd: 7 % 2 is 1, 42 % 2 is 0
5
Remember!
precedence: Order in which operators are evaluated.
Generally operators evaluate left-to-right.
1 - 2 - 3 is (1 - 2) - 3 which is -4
1 + 3 * 4 is 13
6 + 8 / 2 * 3
6 + 4 * 3
6 + 12 is 18
9 / 5
695 % 20
7 + 6 * 5
7 * 6 + 5
248 % 100 / 5
6 * 3 - 9 / 4
(5 - 7) * 4
6 + (18 % (17 - 12))
7
Precedence examples
11 ** 22 ++ 33 ** 55 %% 44 1 + 8 / 3 * 2 - 9
\_/ \_/
\_/
|| |
22 ++ 33 ** 55 %% 44 1 + 2 * 2 - 9
\_/ \___/
\_/
|| |
22 ++ 15 15 %% 44 1 + 4 - 9
\___/ \______/
\___/
|| |
22 ++ 33 5 - 9
\________/ \_________/
\________/
|| |
55 -4
8
Real numbers (type double)
Examples: 6.022 , -42.0 , 2.14317
Placing .0 or . after an integer makes it a double.
9
Precision in real numbers
The computer internally represents real numbers in an
imprecise way.
Example:
System.out.println(0.1 + 0.2);
The output is 0.30000000000000004!
10
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
11
Mixing types
When int and double are mixed, the result is a double.
4.2 * 3 is 12.6
14
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);
}
}
15
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:
16
Declaration
variable declaration: Sets aside memory for storing a value.
Variables must be declared before they can be used.
Syntax:
type name; num1
int num1;
myGPA
double myGPA;
17
Assignment
variable declaration: Sets aside memory for storing a value.
Variables must be declared before they can be used.
double myGPA;
myGPA = 1.0 + 2.25;
myGPA 3.25
18
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); // 14
x = 4 + 7;
System.out.println("now x is " + x); // now x is 11
19
Declaration/initialization
A variable can be declared/initialized in one statement.
Syntax:
type name = expression;
20
Assignment vs. algebra
Assignment uses = , but it is not an algebraic equation.
21
Assignment exercise
What is the output of the following Java code?
int x;
x = 3;
int y = x;
x = 5;
y = y + x;
System.out.println(x);
System.out.println(y);
22
Assignment and types
A variable can only store a value of its own type.
int x = 2.5; // ERROR: incompatible types
double myGPA = 4;
myGPA 4.0
double avg = 10 / 2;
avg 5.0
23
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
int x = 3;
int x = 5; // ERROR: x already exists
How can this code be fixed?
24
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);
• Output:
25
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);
}
}
26
Receipt answer
public class Receipt {
public static void main(String[] args) {
// Calculate total owed, assuming 8% tax / 15% tip
double subtotal = 38 + 40 + 30;
double tax = subtotal * .08;
double tip = subtotal * .15;
double total = subtotal + tax + tip;
27
That is all for today!
QUESTIONS?
28