Building Java Programs

Lab: Expressions and Variables

Except where otherwise noted, the contents of this document are Copyright 2019 Stuart Reges and Marty Stepp.

Lab goals

Goals for this problem set:

Expressions

Recall that Java has expressions to represent math and other computations. Expressions may use operators, which are evaluated according to rules of precedence. Every expression produces a value of a given type.

Type Description Example Result
int integers (up to 231 - 1) 3 + 4 * 5 23
double real numbers (up to 10308) 3.0 / 2.0 + 4.1 5.6
String text characters "hi" + (1 + 1) + "u" "hi2u"

Exercise : Expressions (2.1)

Write the results of each of the following expressions. If you're stuck, ask a TA or neighbor.

12 / 5 + 8 / 4
4
3 * 4 + 15 / 2
19
-(1 + 2 * 3 + (1 + 2) * 3)
-16
42 % 5 + 16 % 3
3
2.5 * 2 + 17 / 4
9.0
4.5 / 3 / 2 + 1
1.75

Exercise : More expressions (2.1)

Write the results of each of the following expressions.

2 + 6 + "cs"
"8cs"
"cs 123" + 2 + 6
"cs 12326"
1 + 9 / 2 * 2.0
9.0
46 / 3 / 2.0 / 3 * 4/5
2.0
50 / 9 / 2.0 + 200 / 10 / (5.0 / 2)
10.5

jShell / Interactions Pane

continued on the next slide...

Exercise : Using jShell / Interactions Pane

In this exercise, you'll use jShell (or your editor's Interactions Pane) to quickly discover the result of some expressions that would be difficult to evaluate by hand. Copy/paste each expression below to evaluate it, then input the answer into this slide.

123 * 456 - 789
55299
3.14 + 1.59 * 2.65
7.3535
2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2
1024
2 + 2 + "xyz" + 3 + 3
"4xyz33"

Variables

Recall that you can use a variable to store the results of an expression in memory and use them later in the program.

type name;                       // declare
name = value or expression;        // assign a value
...
type name = value or expression;   // declare-and-initialize together

Examples:

double iphonePrice;
iPhonePrice = 299.95;

int siblings = 3;
System.out.println("I have " + siblings + " brothers/sisters.");

Exercise : Variable declaration syntax

Which of the following choices is the correct syntax for declaring a real number variable named grade and initializing its value to 4.0?

Exercise : Variable assignment syntax

Suppose you have a variable named grade, set to 1.6:

double grade = 1.6;   // uh-oh

Suppose later in the program's code, we want to change the value of grade to 4.0. Which is the correct syntax to do this?

Exercise : Variable mutation

Suppose you have a variable named balance, set to 463.23:

double balance = 463.23;

Suppose later in the program's code, we want to add 5 to the account balance. Which is a correct statement to do this?

Exercise : a, b, and c practice-it

What are the values of a, b, and c after the following statements? Write your answers in the boxes on the right.

int a = 5;
int b = 10;
int c = b;

a = a + 1;            // a? 6
b = b - 1;            // b? 9
c = c + a;            // c? 16

Exercise : Syntax errors

answer on next slide...

Exercise - answer

  1. line 4: missing + between "x is" and x
  2. line 4: cannot print the value of x before assigning it a value
  3. line 6: cannot assign 15.2 into a variable of type int
  4. line 6: should not redeclare the variable's type
  5. line 7: " mark should be between now and +
  6. line 10: should not write the word int here
  7. line 10: variable y should be same type as x
  8. line 10: does not properly set y to be 1 more than x (should not write the word int here)
  9. line 11: and should be in quotes with surrounding spaces

Exercise - corrected version

Exercise : i, j, and k

What are the values of i, j, and k after the following statements?

int i = 2;
int j = 3;
int k = 4;
int x = i + j + k;

i = x - i - j;            // i? 4
j = x - j - k;            // j? 2
k = x - i - k;            // k? 1

Exercise : Equation

Suppose you have a real number variable x. Write a Java expression that computes a variable named y storing the following value:

y = 12.3x4 - 9.1x3 + 19.3x2 - 4.6x + 34.2

(We haven't learned a way to do exponents yet, but you can simulate them using several multiplications.)

Use the example program on the next slide to test your code.

Exercise - Example code

Copy/paste this program into your editor to test your solution.

// expected output:
// y is 7043.7

public class EquationY {
    public static void main(String[] args) {
        double x = 5;

        double y = put your expression for y here ;

        System.out.println("y is " + y);
    }
}

(answer on next slide)

Exercise - answer

double y = 12.3*x*x*x*x - 9.1*x*x*x + 19.3*x*x - 4.6*x + 34.2;

If you want an added challenge, try to come up with a way to compute the above value while using the * operator no more than 4 times.

(click Next → for answer)

double y = (((12.3 * x - 9.1) * x + 19.3) * x - 4.6) * x + 34.2;

Exercise : Birthday variables