1.
Prelude
❱
1.1.
Asking for Help
1.2.
Toy Problems
1.3.
Lies
2.
Getting Started
3.
First Steps
❱
3.1.
Comments
3.2.
Semicolons
3.3.
Formatting
3.4.
Challenges
4.
Local Variables
❱
4.1.
Naming
4.2.
Reassignment
4.3.
Delayed Assignment
4.4.
Types
4.5.
Final Variables
4.6.
Inferred Types
4.7.
Challenges
Data Types I
5.
Booleans
❱
5.1.
And
5.2.
Or
5.3.
Not
5.4.
Operator Precedence
5.5.
Challenges
6.
Integers
❱
6.1.
Integer Literals
6.2.
Addition
6.3.
Subtraction
6.4.
Multiplication
6.5.
Division
6.6.
Remainder
6.7.
Equality
6.8.
Comparison
6.9.
Chained Comparisons
6.10.
Operator Precedence
6.11.
Reassignment
6.12.
Shorthands for Reassignment
6.13.
Limits
6.14.
Challenges
7.
Floating Point Numbers
❱
7.1.
Floating Point Literals
7.2.
Accuracy
7.3.
Addition
7.4.
Subtraction
7.5.
Multiplication
7.6.
Division
7.7.
Equality
7.8.
Comparison
7.9.
Shorthands for Reassignment
7.10.
NaN
7.11.
Positive and Negative Infinity
7.12.
Square Root
7.13.
Conversion to Integers
7.14.
Conversion from Integers
7.15.
Challenges
8.
Characters
❱
8.1.
Character Literals
8.2.
Common Escape Sequences
8.3.
Conversion to Integers
8.4.
Conversion from Integers
8.5.
Unicode
8.6.
Challenges
9.
Strings
❱
9.1.
String Literals
9.2.
Common Escape Sequences
9.3.
The Empty String
9.4.
Multiline String Literals
9.5.
Concatenation
9.6.
Equality
9.7.
Length
9.8.
Access Individual Characters
9.9.
Challenges
Control Flow I
10.
Branching Paths
❱
10.1.
If
10.2.
Else
10.3.
Nested Ifs
10.4.
Else If
10.5.
Relation to Delayed Assignment
10.6.
Conditional Operator
10.7.
Boolean Expressions
10.8.
Challenges
11.
Loops
❱
11.1.
While
11.2.
Endless Loops
11.3.
Break
11.4.
Continue
11.5.
Unreachable Code
11.6.
Do While
11.7.
Nested Loops
11.8.
Labeled Break
11.9.
Labeled Continue
11.10.
Iteration
11.11.
Counting Up
11.12.
Counting Down
11.13.
Iterate over a String
11.14.
Challenges
Data Types II
12.
Arrays
❱
12.1.
Array Initializers
12.2.
Length
12.3.
Access Individual Elements
12.4.
Set Individual Elements
12.5.
Aliasing
12.6.
Reassignment
12.7.
Relation to Final Variables
12.8.
Printing the Contents of an Array
12.9.
Empty Array
12.10.
Difference between Initializer and Literal
12.11.
Challenges
Control Flow II
13.
Loops II
❱
13.1.
For
13.2.
For Syntax
13.3.
Counting Up and Down
13.4.
Iterate over a String
13.5.
Iterate over an Array
13.6.
Comparison to while
13.7.
i
13.8.
Break
13.9.
Continue
13.10.
Delayed Assignment
13.11.
Inferred Types
13.12.
Empty Initializers
13.13.
Empty Expressions
13.14.
Empty Statements
13.15.
Final Variables
13.16.
Labeled Break
13.17.
Labeled Continue
13.18.
Drawing Right Triangles
13.19.
Drawing Isosceles Triangles
13.20.
Challenges
Code Structure
14.
Methods
❱
14.1.
Declaration
14.2.
Invocation
14.3.
Scope
14.4.
Return
14.5.
Unreachable Statements
14.6.
main
14.7.
Challenges
15.
Arguments
❱
15.1.
Declaration
15.2.
Invocation with Arguments
15.3.
Reassignment
15.4.
Final Arguments
15.5.
Aliasing
15.6.
Overloading
15.7.
Inferred Types
15.8.
Challenges
16.
Return Values
❱
16.1.
void
16.2.
Conversion
16.3.
Pure Functions
16.4.
Impure Functions
User Input
17.
User Input
Data Types III
18.
Identity Types
❱
18.1.
Comparison with ==
19.
Primitive Types
20.
null
❱
20.1.
Checking for null
20.2.
Field Access
20.3.
Instance Methods
21.
Boxed Primitives
❱
21.1.
Primitive Types
21.2.
Integer
21.3.
Double
21.4.
Character
21.5.
Boolean
21.6.
Unboxing Conversion
21.7.
Boxing Conversion
21.8.
Arrays of Boxed Primitives
21.9.
Challenges
22.
Arrays II
❱
22.1.
Default Values
22.2.
Populate Array
Code Structure II
23.
Classes
❱
23.1.
Class Declaration
23.2.
User Defined Types
23.3.
Naming Classes
23.4.
Field Declaration
23.5.
Field Access
23.6.
Naming Fields
23.7.
new
23.8.
Zero Values
23.9.
Aliasing
23.10.
null
24.
Constructors
❱
24.1.
this
24.2.
The Default Constructor
24.3.
Final Fields
24.4.
Multiple Constructors
25.
Instance Methods
❱
25.1.
Declaration
25.2.
Invocation
25.3.
this
25.4.
Aliasing
25.5.
Derived Values
26.
Documentation
❱
26.1.
Documentation Comments
27.
Testing
28.
Example: "Growable" Array
User Defined Types
29.
Primitive Classes
30.
Reference Classes
Light
Rust
Coal
Navy
Ayu
Modern Java
null