TUD Java Course Outline
https://github.com/Trivo25/tud-java-course
October 28, 2021
While you’re waiting for it to start…
- We’re checking your 3G status
- Check your setup
- make sure Java OpenJDK works
- check out this course’s page https://trivo25.github.io/tud-java-course/
Let’s ask again:
Anyone in here who needs us to speak English? Else, we’ll hold it entirely in German.
Java
Object Oriented Programming
Florian Kluge, Moritz Schulz 28. Oktober 2021
Florian.Kluge@mailbox.tu-dresden.de
Moritz.Schulz2@mailbox.tu-dresden.de
What’s happening today
- Short replay on what we did last time
- Variables
- Control flow
Florian Kluge
Florian.Kluge@mailbox.tu-dresden.de
Moritz Schulz
Moritz.Schulz2@mailbox.tu-dresden.de
Quick info about this course
- please let us know if you know you won’t come
- missing twice in a row => disenroll
- practical task-based approach
- examples, we’ll walk around & check
- please, always ask questions
- we want to leave no one behind
Stay up to date
- check your TUD e-mails daily
- check the course website
- link is on the course page (kurse.ifsr.de)
Revision
- let’s do a Hello World again - but quickly
- afterwards, some questions
- OpenJDK or VS Code not installed?
- https://www.jdoodle.com/online-java-compiler/
copy it precisely
public class HelloWorld {
public static void main (String[] args) {
System.out.println("Hello World!");
}
}
public class HelloWorld {
public static void main (String[] args) {
System.out.println("Hello World!");
}
}
Can someone explain?
public class HelloWorld {
public static void main (String[] args) {
String phrase = "Hello World!";
System.out.println(phrase);
}
}
- What’s the difference here?
- Tell us about
phrase
.
- What are variables useful for?
Cheat sheet
http://tiny.cc/java-cs
- or create your own :)
- you can use the slides (website)
Did you encounter any problems since last time?
- Are the use of (basic) variables clear?
- Can you independently compile and run your Java programs?
Lesson 2
Variables and Control Flow
More kinds of variables
- Java introduces a wide ranges of variable types
- … but only a handful are essential
Need to know!
int |
int i = 3213; |
Whole numbers (-2,147,483,648 to 2,147,483,647) |
float |
float f = 0.420f; |
Floating point numbers up to 7 decimal digits |
boolean |
boolean b = false; |
Binary state - True or False |
char |
char c = 'a'; |
Single character or ASCII code |
Good to know - but not important!
byte |
byte b = 11; |
Whole numbers (-128 to 127) |
long |
long l = 31L; |
Whole numbers (very big) |
double |
double d = 43.23d; |
Like float - just twice as precise |
short |
short s = 423; |
Whole numbers (-32,768 to 32,767) |
Integer Operators
int a = 9 * 4; // = 36
int b = 9 + 4; // = 13
int c = 9 % 4; // = ??
int d = 9 / 4; // = ??
Float Operators
float a = 9f * 4f; // = 36.0f
float b = 9f + 4f; // = 13.0f
float c = 9f % 4f; // = 1.0f
float d = 9f / 4f; // = ??
Variable types have different sizes
int i = 30000 * 2; // = ??
short s = 30000 * 2; // = ??
Variable types have different sizes
incompatible types: possible lossy conversion from int to short
boolean Algebra
What is boolean algebra?
boolean b = true || false; // ?
Why booleans?
With booleans
, we can make logical decisions and control how our code “flows”.
Without booleans
, code would be boring and always do the exact same thing.
boolean Algebra
// a boolean can only be true or false
boolean a = false;
boolean b = true;
boolean Algebra
- What do we need booleans for?
- to control how our program flows
- to make decisions
conditions
are booleans
Conditions
- What do we use conditions and if-statements for?
- to execute different code depending on the value of the condition
if(condition) {
// do something cool!
}
Conditions
- conditions need to evaluate to
true
so the code inside {
…}
is executed
if(true) {
// ...the code...
}
Conditions
- conditions can be
boolean
variables
boolean myBoolean = true;
if(myBoolean) {
// do something cool!
}
Conditions and comparisons
- We can compare variables to each other using comparison operators
1 < 3 // ??
3 > 2 // ??
3 <= 3 // ??
1 >= 1 // ??
1 == 1 // ??
Conditions and comparisons
- We also can use comparisons as conditions
int a = 3;
int b = 11;
if(a < b) {
System.out.println("a is smaller than b!");
System.out.println("Condition is true!");
}
Conditions and comparisons
- We can also define
else
cases
int age = 12;
int minAge = 18;
if(age >= minAge) {
System.out.println("Come on in!");
} else {
System.out.println("You're too young.");
}
What does this program do?
Conditions and booleans - Task 1 [EASY]
Write a program that prints a text out when a condition is true
Conditions and comparisions - Task 2 [MEDIUM]
Write a program that prints the absolute difference of two int a
, int b
. - a=7, b=9 ↦ 2 - a=9, b=7 ↦ 2
Conditions, comparisions and data types - Task 3 [HARD]
Remember the size of different data types? e.g short
and int
?
Write a program that prints the product (*
) of two short
only if the product does not exceed the limit of short
(32,767) only using variables of type short
!
Any questions so far?
if not, it’s time for loops loops loops lo…
Loops
- Loops let us execute the same code multiple times
- Loops continue as long as a condition is true (“satisfied”)
- Java has two general types of loops:
while
and for
Loops
- a
while
loop is the easiest
- .. do something while (as long as) a condition is satisfied
boolean myLoopCondition = true;
while(myLoopCondition) {
// this section will get executed multiple times
}
Question: How long will this loop continue for?
Loops
boolean myLoopCondition = false;
while(myLoopCondition) {
// this section will get executed multiple times
}
Question: How long will this loop continue for?
Loops
- How do we avoid infinite loops?
- We can use variables to dynamically change our loop condition once we want to
int a = 0;
while(a < 10) {
a = a+1; // increment a
System.out.println(a);
}
Question: What happens here?
Loops
- with
continue
and break
we can escape a loop or skip an iteration
int a = 0;
while(true) {
if(a == 10) {
break;
}
a++;
}
Question: What happens here?
Loops
int a = 0;
while(a <= 20) {
a++;
if(a % 2 == 0) {
continue;
} else {
System.out.println(a);
}
}
Question: What happens here? Can you think of a simpler program that does the same?
Apply your new-learned knowledge
- Let’s build something with the knowledge we have gained today!
- create a program for the FizzBuzz problem:
- for all integers
n
from 1 to 100
- print
n
, but, instead,
- print “Fizz” if
n
is divisible by 3
- print “Buzz” if
n
is divisible by 5
- print “FizzBuzz” if
n
is divisible by both 3 and 5
- do it for all values that fit in a short?
That’s it!
- Be encouraged to keep working on the tasks :)
- Feel free to reach out to us
- are we too slow or too fast?
- to send us your results
- to tell us about problems you ran into
Next lesson
- for-loops
- Functions
- Arrays (non-primitive data types)
- more practical examples!
See course materials here: https://trivo25.github.io/tud-java-course/