3: Data Types & Flow
We will learn to solve simple problems with Java programming. We will create all sorts of variables, test their limitations and exercise basic control flow.
Last updated
We will learn to solve simple problems with Java programming. We will create all sorts of variables, test their limitations and exercise basic control flow.
Last updated
I can declare variables of common Java data types and assign values.
I can control the flow of my app with loops, conditionals and method calls.
I can write efficient conditionals and return comparisons in my methods.
I can describe the difference between logic, run time and compile time errors.
Primitives are objects that live entirely in stack memory (they're lowercase like int
and not like String
) . We'll go over the difference between stack and heap memory later. For now, just think of stack memory as the lightweight stuff that's really fast-access. Take a look at the types of Java primitives.
CompoundCapitalize
name of classes
camelCase
variables and methods
ALLCAPS
variables marked as final
, meaning they can't change
snake_case
is typically used only in Python and I miss it every time I work in Java or C#
What's 9 / 4
? In Java, it's just2
, but if you wrote it like 9.0 / 2
, then the answer would be 2.5. If you don't introduce a decimal to the operation, if you only give Java literal int
s , it'll match that format and ignore decimals.
We evaluate / test data and produce a true
or false
value.
This comes up all the time in problems. It's a useful trick to avoid crashing your apps, too.
A fundamental element of flow control is whether or not you want to execute a block of code. We use a conditional or if statement to test something. That test will result in a true
or false
value. If it's true, we'll execute the block of code. If it's false, we'll skip to the end of the block of code.
Loops are how we repeat commands or loop through items in a collection.
Most for loops look something like this:
The for statement has a declaration, condition and increment. But you can skip the declaration if you'd like. Let's say you want the counter to have a wider scope (so it can be accessed outside of the loop) like this:
Let's say I have an array or collection of numbers like this: int[] numberArray = [5, 10, 15, 20, 25];
Each number in that group has an address or index (that starts at 0). If I wanted to print the number 10 for example, I could write System.out.println(numberArray[1]);
So if I wanted to loop through (called iterating or traversing) all the items in this array, I could use a normal for loop like this:
But there's an easier form of the for loop that's meant to easily traverse through a collection. We'll go over some of the pros and cons of this method later.
The do-while is rarely used but it's handy if you want to make sure the steps run the first time before the loop condition is tested. Read more.
You can declare and initialize an int like int x = 5;
Similarly, you can create an array that contains three ints like this: int[] x = {5, 10, 15};
Arrays are immutable. They don't change in size. Java uses a fancier object called an ArrayList
that is more flexible. So if one of your friends is trying to convince you to increase the size of an array, just say no.
x.length; // note: this isn't a method like it is in the String class.
x[0]; // this will print "5" in my example
x[x.length-1]; // this will print "15" in my example
Loop through every element in the array
Check if an element is found in an array
Make an array of other types of objects
This is a part of control flow. The thread, the computer's train of thought, is being sent over to work through a set of commands called a method or function (either name works in this class).
Operator
Description
Example (a=10, b=20)
+ (Addition)
Adds values on either side of the operator.
a + b will give 30
- (Subtraction)
Subtracts right-hand operand from left-hand operand.
a - b will give -10
* (Multiplication)
Multiplies values on either side of the operator.
a * b will give 200
/ (Division)
Divides left-hand operand by right-hand operand.
b / a will give 2
% (Modulus)
Divides left-hand operand by right-hand operand and returns the remainder.
b % a will give 0
++ (Increment)
Increases the value of operand by 1.
b++ gives 21
-- (Decrement)
Decreases the value of operand by 1.
b-- gives 19
Operator
Description
Example (a=10, b=15)
Result
==
Equality operator
a==b
false
!=
Not Equal to operator
a!=b
true
>
Greater than
a>b
false
<
Less than
a<b
true
>=
Greater than or equal to
a>=b
false
<=
Less than or equal to
a<=b
true