diff --git a/.gitattributes b/.gitattributes
index 1287ae338bb401edd5038ecb1cd1b8a928ec73b1..2fda3037e54cef7a48ac45c5621edd4d0ab6b47c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -38,3 +38,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
01[[:space:]]-[[:space:]]Introduction/004[[:space:]]Unlimited[[:space:]]access[[:space:]]to[[:space:]]'Learn[[:space:]]IT'[[:space:]]application[[:space:]]for[[:space:]]students.mp4 filter=lfs diff=lfs merge=lfs -text
02[[:space:]]-[[:space:]]Java[[:space:]]Basics/004[[:space:]]Homework[[:space:]]Solution[[:space:]].bat[[:space:]]file[[:space:]]creation.mp4 filter=lfs diff=lfs merge=lfs -text
02[[:space:]]-[[:space:]]Java[[:space:]]Basics/003[[:space:]]First[[:space:]]application[[:space:]]Hello[[:space:]]World[[:space:]]App.mp4 filter=lfs diff=lfs merge=lfs -text
+02[[:space:]]-[[:space:]]Java[[:space:]]Basics/002[[:space:]]JDK[[:space:]]Installation.mp4 filter=lfs diff=lfs merge=lfs -text
+02[[:space:]]-[[:space:]]Java[[:space:]]Basics/006[[:space:]]Comments[[:space:]]in[[:space:]]Java[[:space:]]source[[:space:]]code.mp4 filter=lfs diff=lfs merge=lfs -text
+02[[:space:]]-[[:space:]]Java[[:space:]]Basics/005[[:space:]]Integrated[[:space:]]Development[[:space:]]Environment,[[:space:]]Eclipse[[:space:]]Overview.mp4 filter=lfs diff=lfs merge=lfs -text
diff --git a/02 - Java Basics/002 JDK Installation.mp4 b/02 - Java Basics/002 JDK Installation.mp4
new file mode 100644
index 0000000000000000000000000000000000000000..3c896a0d4c4c42407cec5c2a3de99a822c57c205
--- /dev/null
+++ b/02 - Java Basics/002 JDK Installation.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5021b5800f8d666faa29e4c5ef994cec17c280812bb1089f41de79d3d7df6a24
+size 181550096
diff --git a/02 - Java Basics/005 Integrated Development Environment, Eclipse Overview.mp4 b/02 - Java Basics/005 Integrated Development Environment, Eclipse Overview.mp4
new file mode 100644
index 0000000000000000000000000000000000000000..e9c45fd40b1e5f18eb46281cc55dde1f854f19dd
--- /dev/null
+++ b/02 - Java Basics/005 Integrated Development Environment, Eclipse Overview.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d364e09ba986f96eef9ef7db72a5d7c446436a2a212b7453002dbf9150d2988e
+size 201678692
diff --git a/02 - Java Basics/006 Comments in Java source code.mp4 b/02 - Java Basics/006 Comments in Java source code.mp4
new file mode 100644
index 0000000000000000000000000000000000000000..7663bc3155a8763c17e7b9558c4e96fa400e862b
--- /dev/null
+++ b/02 - Java Basics/006 Comments in Java source code.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a0ec8f6039b3f54702c6cb4f9c65d9cac53c5644e1bdd5818639ba59243f1484
+size 166533972
diff --git a/05 - Operators and Operations with primitive types/external-links.txt b/05 - Operators and Operations with primitive types/external-links.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4f49c8b360f0c5ba055549e16c7f7f709868fcb3
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/external-links.txt
@@ -0,0 +1,39 @@
+
+001 Homework
+https://docs.google.com/document/d/159vwvLmhStIcYp4Lug3fM5AizDPXXMJ5W3SexJQC11M/edit?usp=sharing
+
+001 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operators/JavaOperators.java
+
+002 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/OperationsWithIntegersAndDoubles.java
+
+003 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/math/MathClassDemo.java
+
+004 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/ExpressionTypeExample.java
+
+005 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/PrimitiveAndRefferenceTypesComparison.java
+
+006 Homework
+https://docs.google.com/document/d/1g5Nl9tqjgs8taUA7jJQeMaGfnWuSeLB_zSFrbozfT-c/edit?folder=1XkdXhkewYf3n2ak7mRbUNW3HDc_mCMvP
+
+006 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/ReadFromConsole.java
+
+010 Homework
+https://docs.google.com/document/d/1g5Nl9tqjgs8taUA7jJQeMaGfnWuSeLB_zSFrbozfT-c/edit?folder=1XkdXhkewYf3n2ak7mRbUNW3HDc_mCMvP
+
+010 Integers-Calculator-Solution
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/hw/AddIntegers.java
+
+010 Area-of-Triangle-Solution
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/hw/AreaOfTriangle.java
+
+010 Circle-Circumference-Solution
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/hw/CircleCircumference.java
+
+010 Homework-Demo-Class
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/hw/Demo.java
diff --git a/06 - Strings in Java/001 Source-code-of-the-example-used-in-the-lesson.url b/06 - Strings in Java/001 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..f7730aa8a91cc0ac8051446a3c7862d794a1b78d
--- /dev/null
+++ b/06 - Strings in Java/001 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/StringMainMethodsOverview.java
\ No newline at end of file
diff --git a/06 - Strings in Java/001 String object creation and main methods overview_en.srt b/06 - Strings in Java/001 String object creation and main methods overview_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..e27b1b0943ef39c2dd5e89944f4fba921abfcf12
--- /dev/null
+++ b/06 - Strings in Java/001 String object creation and main methods overview_en.srt
@@ -0,0 +1,336 @@
+1
+00:00:00,000 --> 00:00:01,000
+Hello, Tim.
+
+2
+00:00:01,000 --> 00:00:03,000
+Today we have a very important topic.
+
+3
+00:00:03,000 --> 00:00:05,000
+Today we'll learn more about strings.
+
+4
+00:00:06,000 --> 00:00:06,000
+Why?
+
+5
+00:00:06,000 --> 00:00:11,000
+It is very important because every time you will do data manipulation in your program, you will manipulate
+
+6
+00:00:11,000 --> 00:00:12,000
+with string objects.
+
+7
+00:00:12,000 --> 00:00:17,000
+Most of the times we start series of lessons about string type.
+
+8
+00:00:18,000 --> 00:00:21,000
+In this section of training course we will review source code of string class.
+
+9
+00:00:21,000 --> 00:00:25,000
+I will put a stress on the most important methods that most likely you will use.
+
+10
+00:00:26,000 --> 00:00:33,000
+Also, we will talk about string comparison, escape sequences, string formatting, and regular expressions.
+
+11
+00:00:34,000 --> 00:00:39,000
+In this lesson, we will take a look how to create string object and will review main string methods
+
+12
+00:00:40,000 --> 00:00:41,000
+to understand topic better.
+
+13
+00:00:41,000 --> 00:00:43,000
+Let's start with examples.
+
+14
+00:00:44,000 --> 00:00:49,000
+To create string object, declare a variable of string type first and after that assign string literal
+
+15
+00:00:49,000 --> 00:00:50,000
+to this variable.
+
+16
+00:00:50,000 --> 00:00:55,000
+Pay attention that in this string we have spaces at the beginning and at the end.
+
+17
+00:00:56,000 --> 00:00:58,000
+Now let me briefly cover main string methods.
+
+18
+00:00:59,000 --> 00:01:04,000
+String length method allow you to understand how much characters do you have in the string?
+
+19
+00:01:05,000 --> 00:01:12,000
+Contains method will return you true or false in case string contains the string you specified as method
+
+20
+00:01:12,000 --> 00:01:17,000
+argument true will be returned and false otherwise.
+
+21
+00:01:17,000 --> 00:01:22,000
+In this case, this string really contains this sequence of characters.
+
+22
+00:01:22,000 --> 00:01:30,000
+That's why true is returned as is empty is very useful method when you want to verify whether this string
+
+23
+00:01:30,000 --> 00:01:33,000
+object contains any characters or no.
+
+24
+00:01:34,000 --> 00:01:39,000
+You will use this method very often in your code to validate string before working with it.
+
+25
+00:01:40,000 --> 00:01:44,000
+You can turn all characters to uppercase or lowercase if you wish.
+
+26
+00:01:44,000 --> 00:01:51,000
+For example, you may want to store all user nicknames in lowercase in your game to have consistent
+
+27
+00:01:51,000 --> 00:01:51,000
+style.
+
+28
+00:01:52,000 --> 00:01:57,000
+You can check if specified string started or ended with specific sequence of characters.
+
+29
+00:01:57,000 --> 00:02:00,000
+In this case, our string not started with H.
+
+30
+00:02:00,000 --> 00:02:07,000
+That's why false is returned and our string is ended with space character.
+
+31
+00:02:07,000 --> 00:02:09,000
+That's why true is returned.
+
+32
+00:02:10,000 --> 00:02:16,000
+By the way, you can run this program on your local computer and investigate console output when it
+
+33
+00:02:16,000 --> 00:02:17,000
+is needed.
+
+34
+00:02:17,000 --> 00:02:20,000
+You can replace characters in the string like I do.
+
+35
+00:02:20,000 --> 00:02:29,000
+In this example, I replaced lowercase double L with uppercase double L trim and strip methods.
+
+36
+00:02:29,000 --> 00:02:31,000
+Very important ones.
+
+37
+00:02:31,000 --> 00:02:35,000
+Often you will work with strings which have leading or trailing spaces.
+
+38
+00:02:35,000 --> 00:02:38,000
+Sometimes this might cause different errors.
+
+39
+00:02:39,000 --> 00:02:45,000
+To eliminate cases when leading or trailing spaces cause errors, you will call trim or strip methods
+
+40
+00:02:45,000 --> 00:02:49,000
+on string objects before doing other operations with them.
+
+41
+00:02:50,000 --> 00:02:55,000
+As you can see from this example, trim and strip methods remove leading and trailing spaces.
+
+42
+00:02:57,000 --> 00:03:03,000
+The strip method is available starting from JDK 11 and it is Unicode whitespace aware.
+
+43
+00:03:04,000 --> 00:03:08,000
+In case you are working with JDK version eight, feel free to use trim method.
+
+44
+00:03:08,000 --> 00:03:09,000
+Instead.
+
+45
+00:03:10,000 --> 00:03:13,000
+You can get substring from string object.
+
+46
+00:03:13,000 --> 00:03:20,000
+To do this, you need to specify characters index from index inclusively and to index exclusively.
+
+47
+00:03:21,000 --> 00:03:25,000
+There are different business cases when you need to get part of the string from string.
+
+48
+00:03:26,000 --> 00:03:27,000
+In Greek.
+
+49
+00:03:27,000 --> 00:03:33,000
+You can find different classes that not always work with string objects, but works with array of bytes.
+
+50
+00:03:33,000 --> 00:03:38,000
+Probably you will face with such cases during learning of input output stream topic.
+
+51
+00:03:38,000 --> 00:03:44,000
+So for now, just be aware that you can convert each string to an array of bytes just like this.
+
+52
+00:03:45,000 --> 00:03:48,000
+You can get array of characters if you wish.
+
+53
+00:03:48,000 --> 00:03:52,000
+Just call to char array method and you will have array of characters.
+
+54
+00:03:53,000 --> 00:03:58,000
+If you want to get characters from specific index, you need to use char at method.
+
+55
+00:03:59,000 --> 00:04:02,000
+Another very important method split.
+
+56
+00:04:02,000 --> 00:04:08,000
+You will use it very often because a lot of times your program receives one single string and you need
+
+57
+00:04:08,000 --> 00:04:11,000
+to split it first to process further.
+
+58
+00:04:11,000 --> 00:04:14,000
+For example, you receive string of data with users.
+
+59
+00:04:14,000 --> 00:04:18,000
+Information about each user is described in separate line.
+
+60
+00:04:18,000 --> 00:04:20,000
+But you have single string object.
+
+61
+00:04:20,000 --> 00:04:22,000
+What do you need to do?
+
+62
+00:04:22,000 --> 00:04:25,000
+You need just to split the string by new line character.
+
+63
+00:04:26,000 --> 00:04:29,000
+Split method takes regular expression as an argument.
+
+64
+00:04:29,000 --> 00:04:32,000
+We will talk about regular expressions a bit later.
+
+65
+00:04:32,000 --> 00:04:38,000
+Right now understand that you can split string by regular expression and get an array of strings.
+
+66
+00:04:38,000 --> 00:04:42,000
+Like in this example, I split our word using e character.
+
+67
+00:04:43,000 --> 00:04:44,000
+And look here what we got.
+
+68
+00:04:45,000 --> 00:04:47,000
+Array of two elements a a a.
+
+69
+00:04:48,000 --> 00:04:50,000
+And here you can see our initial string.
+
+70
+00:04:51,000 --> 00:04:54,000
+You need to understand that string objects are immutable.
+
+71
+00:04:54,000 --> 00:05:00,000
+No matter how many times you will call different methods on string object, the initial object will
+
+72
+00:05:00,000 --> 00:05:01,000
+remain the same.
+
+73
+00:05:01,000 --> 00:05:07,000
+This type designed in such way that you can't change state of the object once you created it.
+
+74
+00:05:08,000 --> 00:05:11,000
+Each method call doesn't modify existing string.
+
+75
+00:05:11,000 --> 00:05:15,000
+Instead it creates and returns reference to new string object.
+
+76
+00:05:16,000 --> 00:05:18,000
+Always keep this in mind.
+
+77
+00:05:18,000 --> 00:05:24,000
+Immutable objects have pros and cons, and we will discuss pros and cons of immutable object during
+
+78
+00:05:24,000 --> 00:05:25,000
+the next topics.
+
+79
+00:05:25,000 --> 00:05:28,000
+When we will talk with you about garbage collector and collections.
+
+80
+00:05:29,000 --> 00:05:33,000
+So right now you are know probably all main methods from string class.
+
+81
+00:05:34,000 --> 00:05:37,000
+But still, I encourage you to take a look at the source code and investigate.
+
+82
+00:05:37,000 --> 00:05:39,000
+What other methods does string type have?
+
+83
+00:05:40,000 --> 00:05:43,000
+Thank you for your attention and see you in the next lesson.
+
+84
+00:05:44,000 --> 00:05:45,000
+Baths.
+
diff --git a/06 - Strings in Java/002 Source-code-of-the-example-used-in-the-lesson.url b/06 - Strings in Java/002 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..e23b2a4310887349a15df0a74017855a9103191a
--- /dev/null
+++ b/06 - Strings in Java/002 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/StringComparisonDemo.java
\ No newline at end of file
diff --git a/06 - Strings in Java/002 String comparison How to compare Strings and what is String Pool_en.srt b/06 - Strings in Java/002 String comparison How to compare Strings and what is String Pool_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..59476ce5ee40839dc1280ef4475bcb274af64fa9
--- /dev/null
+++ b/06 - Strings in Java/002 String comparison How to compare Strings and what is String Pool_en.srt
@@ -0,0 +1,244 @@
+1
+00:00:00,000 --> 00:00:01,000
+Hello guys.
+
+2
+00:00:01,000 --> 00:00:03,000
+We will proceed learning Stringtype.
+
+3
+00:00:03,000 --> 00:00:07,000
+In this lesson we will talk about how we can compare strings.
+
+4
+00:00:07,000 --> 00:00:11,000
+So here I have one more string literal, the same as S.
+
+5
+00:00:11,000 --> 00:00:17,000
+Just to remind you, S is a variable from a previous lesson about strings, and it refers to the same
+
+6
+00:00:17,000 --> 00:00:18,000
+string.
+
+7
+00:00:18,000 --> 00:00:23,000
+When I compare s and s2 with equals to operator, I get true as a result.
+
+8
+00:00:24,000 --> 00:00:27,000
+But let me create string object in different way.
+
+9
+00:00:27,000 --> 00:00:32,000
+By using new keyword I am going to name new variable s three.
+
+10
+00:00:32,000 --> 00:00:38,000
+I believe you already understand what I'm trying to say here, in case you will compare s and s three
+
+11
+00:00:38,000 --> 00:00:42,000
+objects with equals to operator, you will get false.
+
+12
+00:00:42,000 --> 00:00:43,000
+Why?
+
+13
+00:00:43,000 --> 00:00:48,000
+The same answer as we discussed in the lesson regarding comparison of primitive and reference types,
+
+14
+00:00:49,000 --> 00:00:53,000
+because s and s three refers to different objects in the heap.
+
+15
+00:00:54,000 --> 00:00:56,000
+But why previous example gives us true result.
+
+16
+00:00:57,000 --> 00:01:00,000
+You already aware about pool of integers in the heap memory.
+
+17
+00:01:01,000 --> 00:01:03,000
+We also have pool of strings.
+
+18
+00:01:03,000 --> 00:01:09,000
+When you are using string literal in the program, the string is added to pool of strings, and the
+
+19
+00:01:09,000 --> 00:01:15,000
+next time you are using the same string literal, Java checks whether such string already exists in
+
+20
+00:01:15,000 --> 00:01:16,000
+string pool.
+
+21
+00:01:16,000 --> 00:01:22,000
+If yes, then Java returns reference to the object that is already in heap memory instead of creating
+
+22
+00:01:22,000 --> 00:01:23,000
+a new one.
+
+23
+00:01:24,000 --> 00:01:29,000
+On the other hand, when you are using new keyword, you say Java to allocate memory and to create new
+
+24
+00:01:29,000 --> 00:01:31,000
+object in heap.
+
+25
+00:01:31,000 --> 00:01:37,000
+Taking into account, we use string literal when initialized s variable and s two variable.
+
+26
+00:01:37,000 --> 00:01:41,000
+These two variables are referring to the same object in pool of strings.
+
+27
+00:01:41,000 --> 00:01:43,000
+Let me visualize this to you.
+
+28
+00:01:44,000 --> 00:01:46,000
+So you have three variables.
+
+29
+00:01:46,000 --> 00:01:49,000
+Two of them are referring to the same object in string pool.
+
+30
+00:01:49,000 --> 00:01:55,000
+That's why equals to operator returns true when you are comparing S1 and S2 variables.
+
+31
+00:01:55,000 --> 00:02:00,000
+In this particular example, the third variable refers to the new object.
+
+32
+00:02:00,000 --> 00:02:05,000
+So how to compare strings the same way as other reference types?
+
+33
+00:02:06,000 --> 00:02:11,000
+String type has equals method, which allows you to compare strings by their values.
+
+34
+00:02:12,000 --> 00:02:16,000
+So in this example you will get true because these strings are equal.
+
+35
+00:02:16,000 --> 00:02:19,000
+One more trick you need to know about string comparison.
+
+36
+00:02:20,000 --> 00:02:26,000
+If you will compare s variable with result of internal method call and you will do comparison via equal
+
+37
+00:02:26,000 --> 00:02:27,000
+to operator.
+
+38
+00:02:27,000 --> 00:02:34,000
+You will get true even despite the fact you will not use internal method in production code way too
+
+39
+00:02:34,000 --> 00:02:34,000
+much.
+
+40
+00:02:34,000 --> 00:02:40,000
+This question is often appeared during the junior developers interview to identify whether developers
+
+41
+00:02:40,000 --> 00:02:44,000
+are aware about String pool or no in turn method put.
+
+42
+00:02:44,000 --> 00:02:49,000
+S3 string in the string pool and return the reference to the object in string pool.
+
+43
+00:02:50,000 --> 00:02:56,000
+That's why in this case, you will compare references to the same object, because such string already
+
+44
+00:02:56,000 --> 00:03:00,000
+exists in the string pool and you will get true as a result here.
+
+45
+00:03:00,000 --> 00:03:02,000
+Hope it is clear now.
+
+46
+00:03:03,000 --> 00:03:04,000
+Next example.
+
+47
+00:03:04,000 --> 00:03:10,000
+Let's say I have a variable with my first name, and I have second variable with my first name, but
+
+48
+00:03:10,000 --> 00:03:12,000
+started with lowercase a.
+
+49
+00:03:12,000 --> 00:03:17,000
+When I will compare these two strings with equals method, I will get false.
+
+50
+00:03:18,000 --> 00:03:19,000
+And that is right.
+
+51
+00:03:19,000 --> 00:03:22,000
+These two strings are different.
+
+52
+00:03:22,000 --> 00:03:29,000
+Capital A and lowercase a are different characters, but we humans understand that this is the same
+
+53
+00:03:29,000 --> 00:03:30,000
+name.
+
+54
+00:03:30,000 --> 00:03:36,000
+So what you can do to compare these strings and get the result which you are expecting, you can call
+
+55
+00:03:36,000 --> 00:03:39,000
+equals to Ignorecase method which will compare two strings.
+
+56
+00:03:39,000 --> 00:03:40,000
+Ignoring case.
+
+57
+00:03:40,000 --> 00:03:42,000
+Here we will get true.
+
+58
+00:03:42,000 --> 00:03:43,000
+That's it.
+
+59
+00:03:43,000 --> 00:03:44,000
+Regarding string comparison.
+
+60
+00:03:45,000 --> 00:03:48,000
+Thanks a lot for your attention and see you in the next lesson.
+
+61
+00:03:49,000 --> 00:03:49,000
+Baths.
+
diff --git a/06 - Strings in Java/003 Escape Sequences in Java_en.srt b/06 - Strings in Java/003 Escape Sequences in Java_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..c586025d098ec9ff6db98118c702a6ec5de588b5
--- /dev/null
+++ b/06 - Strings in Java/003 Escape Sequences in Java_en.srt
@@ -0,0 +1,148 @@
+1
+00:00:00,000 --> 00:00:01,000
+Hello team!
+
+2
+00:00:01,000 --> 00:00:04,000
+In this lesson we will learn with you escape sequences in Java.
+
+3
+00:00:05,000 --> 00:00:08,000
+Let me show you what is escape sequence and how to escape characters.
+
+4
+00:00:09,000 --> 00:00:14,000
+I believe you already understood that all string literals need to be enclosed in quotation marks.
+
+5
+00:00:15,000 --> 00:00:19,000
+But what to do in case you need to have string which will contain quotes in itself?
+
+6
+00:00:20,000 --> 00:00:23,000
+In this example I want to put book name in quotes.
+
+7
+00:00:23,000 --> 00:00:29,000
+To do this, I need to use character escaping by using a special symbol backslash.
+
+8
+00:00:29,000 --> 00:00:31,000
+I can escape quotation marks.
+
+9
+00:00:32,000 --> 00:00:38,000
+In Java, a backslash combined with a character to be escaped is called an escape sequence.
+
+10
+00:00:38,000 --> 00:00:43,000
+In case I don't use backslash in this example, there will be compilation error.
+
+11
+00:00:43,000 --> 00:00:50,000
+Java compiler is very smart program, but it will be hard for it to compile string in such format.
+
+12
+00:00:50,000 --> 00:00:56,000
+Java compiler expects that each string is started with quote and ended with quote.
+
+13
+00:00:56,000 --> 00:01:02,000
+That's why without escape sequence for Java compiler, it will be impossible to understand that you
+
+14
+00:01:02,000 --> 00:01:05,000
+want to have this string as part of the whole string.
+
+15
+00:01:06,000 --> 00:01:08,000
+Let's consider another example.
+
+16
+00:01:08,000 --> 00:01:14,000
+You want to have string which will contain directory path on your computer and you need to use backslash.
+
+17
+00:01:14,000 --> 00:01:21,000
+But Java compiler knows that in source code will use backslash only in case we want to create escape
+
+18
+00:01:21,000 --> 00:01:28,000
+sequence, and in this case compiler simply cannot find escape sequence because you don't need to escape
+
+19
+00:01:28,000 --> 00:01:29,000
+J character.
+
+20
+00:01:29,000 --> 00:01:32,000
+That's why you need to escape your backslash character.
+
+21
+00:01:33,000 --> 00:01:38,000
+And we have here double backslash in the source code but single backslash in the output.
+
+22
+00:01:39,000 --> 00:01:42,000
+In Java there are limited amount of escape sequences.
+
+23
+00:01:42,000 --> 00:01:50,000
+Here you can find all lists of escape sequences for example backslash and t inserts, tab character
+
+24
+00:01:50,000 --> 00:01:54,000
+backslash and n inserts newline character.
+
+25
+00:01:54,000 --> 00:01:57,000
+Here is an example with two lines in one string object.
+
+26
+00:01:58,000 --> 00:02:01,000
+You see backslash and n here.
+
+27
+00:02:01,000 --> 00:02:03,000
+And here is the output.
+
+28
+00:02:03,000 --> 00:02:06,000
+Here is one line and the second line.
+
+29
+00:02:07,000 --> 00:02:11,000
+I encourage you to try these escape sequences in your source code.
+
+30
+00:02:12,000 --> 00:02:19,000
+Another important thing to know about escaping characters in Java Unicode table includes the symbols
+
+31
+00:02:19,000 --> 00:02:22,000
+of almost every written language in the world.
+
+32
+00:02:22,000 --> 00:02:28,000
+In case you need to use Unicode character in your string, you can just escape Unicode code.
+
+33
+00:02:28,000 --> 00:02:34,000
+All Unicode characters codes have the form U plus hexadecimal number.
+
+34
+00:02:34,000 --> 00:02:41,000
+So if you need to use character from Unicode table, just escape this value and you will see copyright
+
+35
+00:02:41,000 --> 00:02:42,000
+character in the output.
+
+36
+00:02:43,000 --> 00:02:44,000
+That's all.
+
+37
+00:02:44,000 --> 00:02:47,000
+Thank you for your attention and see you in the next lesson.
+
diff --git a/06 - Strings in Java/003 Source-code-of-the-example-used-in-the-lesson.url b/06 - Strings in Java/003 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..f51114bfb1cf73af5986cab181962ebd9eed035d
--- /dev/null
+++ b/06 - Strings in Java/003 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/EscapeSequences.java
\ No newline at end of file
diff --git a/06 - Strings in Java/004 Source-code-from-the-lesson-Formatter-Demo.url b/06 - Strings in Java/004 Source-code-from-the-lesson-Formatter-Demo.url
new file mode 100644
index 0000000000000000000000000000000000000000..a46bf2c1777707f2c05cda37aa1f5aa9903e7918
--- /dev/null
+++ b/06 - Strings in Java/004 Source-code-from-the-lesson-Formatter-Demo.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/FormatterDemo.java
\ No newline at end of file
diff --git a/06 - Strings in Java/004 Source-code-of-the-example-used-in-the-lesson.url b/06 - Strings in Java/004 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..b162aa0f681115f0fff698b25bc63b7273bbe825
--- /dev/null
+++ b/06 - Strings in Java/004 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/StringFormattingDemo.java
\ No newline at end of file
diff --git a/06 - Strings in Java/004 String Formatting_en.srt b/06 - Strings in Java/004 String Formatting_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..9640c73a8b2a00c814ea5a3056375f9277661c8e
--- /dev/null
+++ b/06 - Strings in Java/004 String Formatting_en.srt
@@ -0,0 +1,164 @@
+1
+00:00:00,000 --> 00:00:01,000
+Hello, Tim.
+
+2
+00:00:01,000 --> 00:00:07,000
+In this lesson, I'd like to show you how you can format your string a bit later in this training course.
+
+3
+00:00:07,000 --> 00:00:13,000
+We'll write with you your own web application, and you will have standard labels to ensure amazing
+
+4
+00:00:13,000 --> 00:00:16,000
+user experience in your web application.
+
+5
+00:00:16,000 --> 00:00:21,000
+For example, you will have personalized welcome message which will contain user first name and greetings.
+
+6
+00:00:22,000 --> 00:00:25,000
+Greetings will be different based on the current time of the day.
+
+7
+00:00:26,000 --> 00:00:28,000
+Your template string can look like this.
+
+8
+00:00:29,000 --> 00:00:33,000
+Hello dear, some name and good part of the day.
+
+9
+00:00:33,000 --> 00:00:39,000
+During the string formatting, you will be able to insert different strings instead of percent sign
+
+10
+00:00:39,000 --> 00:00:39,000
+s.
+
+11
+00:00:40,000 --> 00:00:43,000
+Here you have morning, afternoon and evening strings.
+
+12
+00:00:43,000 --> 00:00:49,000
+To format string, you need to call string format method where the first argument will be string you
+
+13
+00:00:49,000 --> 00:00:56,000
+want to format, and after that you will pass arguments referenced by the format specifiers like these
+
+14
+00:00:56,000 --> 00:00:57,000
+signs.
+
+15
+00:00:58,000 --> 00:01:05,000
+In our template we have two format specifiers in case you will pass more than two arguments after the
+
+16
+00:01:05,000 --> 00:01:10,000
+template, they will be ignored in case you will pass not enough arguments.
+
+17
+00:01:10,000 --> 00:01:14,000
+Exception will be thrown by JVM during the runtime format.
+
+18
+00:01:14,000 --> 00:01:20,000
+Method returns the reference to the new string object and we can print it to console.
+
+19
+00:01:21,000 --> 00:01:22,000
+Hello dear Andre.
+
+20
+00:01:22,000 --> 00:01:23,000
+Good morning.
+
+21
+00:01:24,000 --> 00:01:28,000
+Also you can print formatted string directly to console.
+
+22
+00:01:28,000 --> 00:01:31,000
+You can use printf method for such purpose.
+
+23
+00:01:32,000 --> 00:01:36,000
+Here you see different format specifier percent sign.
+
+24
+00:01:36,000 --> 00:01:36,000
+D.
+
+25
+00:01:37,000 --> 00:01:40,000
+This specifier is used to put any digit instead of it.
+
+26
+00:01:41,000 --> 00:01:44,000
+And here you can see that I am passing integer.
+
+27
+00:01:44,000 --> 00:01:47,000
+In console you can see the result which I get.
+
+28
+00:01:48,000 --> 00:01:52,000
+There are different specifiers and flags and I prepared examples for you.
+
+29
+00:01:53,000 --> 00:01:57,000
+You can find source code in separate file formatted demo.
+
+30
+00:01:58,000 --> 00:02:03,000
+I will share a link with you to this file in the lesson resources or in video description.
+
+31
+00:02:04,000 --> 00:02:09,000
+Here you will be able to find link to the official Oracle documentation where all specifiers and flags
+
+32
+00:02:09,000 --> 00:02:10,000
+are listed.
+
+33
+00:02:11,000 --> 00:02:14,000
+Let me run this program to walk you through the program output.
+
+34
+00:02:15,000 --> 00:02:22,000
+The examples describe different ways to format numbers, justification, hexadecimal numbers, formatting,
+
+35
+00:02:22,000 --> 00:02:30,000
+precision formatting, etc. I don't think that it is necessary to pay attention to each example here
+
+36
+00:02:30,000 --> 00:02:35,000
+in this video, because from the syntax point of view, they are all similar.
+
+37
+00:02:35,000 --> 00:02:39,000
+The only thing you need to learn is different specifiers and when to use them.
+
+38
+00:02:40,000 --> 00:02:45,000
+During your homework, I would ask you to run these examples on your computer and to ask me questions
+
+39
+00:02:45,000 --> 00:02:46,000
+in case you will have any.
+
+40
+00:02:47,000 --> 00:02:48,000
+Thanks a lot for your attention.
+
+41
+00:02:48,000 --> 00:02:50,000
+See you in the next lesson.
+
diff --git a/06 - Strings in Java/005 Homework.url b/06 - Strings in Java/005 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..4a2e801b093c8e4f5ac76a4f83cd605ab1b54443
--- /dev/null
+++ b/06 - Strings in Java/005 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/12ERxY6dUtcxo5ikfBA13_mB_7yeAByXpliDqEQ0Kjrk/edit?usp=sharing
\ No newline at end of file
diff --git a/06 - Strings in Java/005 Regular expressions in Java_en.srt b/06 - Strings in Java/005 Regular expressions in Java_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..91c54ca336d3f9d8925213388a91d2773d23d9d4
--- /dev/null
+++ b/06 - Strings in Java/005 Regular expressions in Java_en.srt
@@ -0,0 +1,380 @@
+1
+00:00:00,000 --> 00:00:00,000
+Hello, team.
+
+2
+00:00:00,000 --> 00:00:04,000
+In this lesson, I'd like to talk with you about regular expressions.
+
+3
+00:00:05,000 --> 00:00:06,000
+What is regular expression?
+
+4
+00:00:06,000 --> 00:00:11,000
+Regular expression is a sequence of characters that define a search pattern.
+
+5
+00:00:11,000 --> 00:00:16,000
+So you can use special set of characters to find all strings that match your pattern.
+
+6
+00:00:17,000 --> 00:00:20,000
+Sometimes you use regular expression to split string.
+
+7
+00:00:20,000 --> 00:00:22,000
+Let's imagine next case.
+
+8
+00:00:22,000 --> 00:00:26,000
+You have a lot of text and you need to find only Google email accounts.
+
+9
+00:00:27,000 --> 00:00:28,000
+How you would do this?
+
+10
+00:00:28,000 --> 00:00:32,000
+You will try to describe search pattern with the help of special symbols.
+
+11
+00:00:33,000 --> 00:00:35,000
+What are the special symbols?
+
+12
+00:00:35,000 --> 00:00:36,000
+Here are some of them.
+
+13
+00:00:36,000 --> 00:00:40,000
+Square brackets to identify characters which we need to search.
+
+14
+00:00:41,000 --> 00:00:45,000
+I specified range from A to z lowercase and from A to z capital.
+
+15
+00:00:46,000 --> 00:00:51,000
+Also specified dash character backslash d will match with all digits.
+
+16
+00:00:51,000 --> 00:00:55,000
+And you already learned that we need to escape backslash character.
+
+17
+00:00:55,000 --> 00:00:58,000
+That's why it's double backslash here.
+
+18
+00:00:59,000 --> 00:01:01,000
+Also there are quantifiers.
+
+19
+00:01:01,000 --> 00:01:03,000
+Plus sign might be read like this.
+
+20
+00:01:03,000 --> 00:01:07,000
+In case these characters will be repeated at least one time and more.
+
+21
+00:01:08,000 --> 00:01:10,000
+That is what we need after all of this.
+
+22
+00:01:10,000 --> 00:01:14,000
+We expect at sign gmail dot.
+
+23
+00:01:14,000 --> 00:01:21,000
+Taking into account dot in regular expression means any character we need to escape dot to say that
+
+24
+00:01:21,000 --> 00:01:26,000
+we don't expect any character, but we are looking for exactly dot.
+
+25
+00:01:26,000 --> 00:01:30,000
+That's why double backslash here and comb.
+
+26
+00:01:30,000 --> 00:01:33,000
+Your homework task will be to learn other special symbols.
+
+27
+00:01:34,000 --> 00:01:36,000
+I will share with you details at the end of the lesson.
+
+28
+00:01:37,000 --> 00:01:43,000
+Definitely, there are a lot of ways to improve the regular expressions for email, and you can find
+
+29
+00:01:43,000 --> 00:01:48,000
+in internet billions of variations of pattern for email address verification.
+
+30
+00:01:48,000 --> 00:01:55,000
+Our goal right now to learn how to use regular expressions regarding special symbols to use in regular
+
+31
+00:01:55,000 --> 00:01:55,000
+expression.
+
+32
+00:01:56,000 --> 00:01:59,000
+I will share more details at the end of this lesson.
+
+33
+00:01:59,000 --> 00:02:02,000
+After that you need to compile pattern.
+
+34
+00:02:02,000 --> 00:02:06,000
+Do not forget to import Java.util regex package.
+
+35
+00:02:09,000 --> 00:02:12,000
+We have the sample text with gmail address in it.
+
+36
+00:02:12,000 --> 00:02:19,000
+Now you can get matcher much object out of pattern call matching method on pattern object and pass sample
+
+37
+00:02:19,000 --> 00:02:20,000
+text into it.
+
+38
+00:02:21,000 --> 00:02:25,000
+Match object can find matches call find method.
+
+39
+00:02:25,000 --> 00:02:32,000
+Find method returns true in case a subsequence of the input sequence matches this matches pattern and
+
+40
+00:02:32,000 --> 00:02:33,000
+false otherwise.
+
+41
+00:02:33,000 --> 00:02:38,000
+In case there is a match, you will be able to call group method to return the string which matches
+
+42
+00:02:38,000 --> 00:02:39,000
+your pattern.
+
+43
+00:02:40,000 --> 00:02:42,000
+And let's print this to console.
+
+44
+00:02:43,000 --> 00:02:45,000
+What can be improved here?
+
+45
+00:02:46,000 --> 00:02:50,000
+As you learn loops, topic and control statements topic, you will be able to manage search process
+
+46
+00:02:50,000 --> 00:02:52,000
+in a bit different way.
+
+47
+00:02:52,000 --> 00:02:58,000
+For example, probably better solution would be here to call find method in if statement or in while
+
+48
+00:02:58,000 --> 00:03:00,000
+loop to print multiple matches.
+
+49
+00:03:01,000 --> 00:03:04,000
+But don't worry so far we will learn all topics gradually.
+
+50
+00:03:04,000 --> 00:03:07,000
+You will have enough tasks to practice your skills.
+
+51
+00:03:07,000 --> 00:03:10,000
+For now, I don't want to confuse you even more.
+
+52
+00:03:10,000 --> 00:03:15,000
+Solution like this should be fine in case you want to find match in the string.
+
+53
+00:03:16,000 --> 00:03:17,000
+Another example.
+
+54
+00:03:17,000 --> 00:03:21,000
+We have sample text and we want to split it by sentences.
+
+55
+00:03:21,000 --> 00:03:23,000
+Let's come up with a regular expression.
+
+56
+00:03:23,000 --> 00:03:26,000
+We need to split by any of these characters.
+
+57
+00:03:26,000 --> 00:03:27,000
+Period.
+
+58
+00:03:27,000 --> 00:03:29,000
+Exclamation mark.
+
+59
+00:03:29,000 --> 00:03:30,000
+Question mark.
+
+60
+00:03:31,000 --> 00:03:33,000
+Now let's split this sample text.
+
+61
+00:03:33,000 --> 00:03:36,000
+Using this regex we'll call split method.
+
+62
+00:03:36,000 --> 00:03:40,000
+We'll get string array and let's print it to console.
+
+63
+00:03:41,000 --> 00:03:44,000
+Here you can see that you have three different sentences.
+
+64
+00:03:45,000 --> 00:03:47,000
+Let's recap what you have learned about strings.
+
+65
+00:03:48,000 --> 00:03:52,000
+Now you know main string methods how to compare strings.
+
+66
+00:03:52,000 --> 00:03:54,000
+You learn what is pool of strings.
+
+67
+00:03:54,000 --> 00:04:00,000
+How to use escape sequences in your source code, how you can format strings, and how to use regular
+
+68
+00:04:00,000 --> 00:04:01,000
+expressions.
+
+69
+00:04:01,000 --> 00:04:03,000
+Now let's take a look at your homework.
+
+70
+00:04:05,000 --> 00:04:09,000
+First of all, take a look one more time to string source code.
+
+71
+00:04:09,000 --> 00:04:12,000
+Take a look at other methods which are in string class.
+
+72
+00:04:13,000 --> 00:04:15,000
+As usual, I recommend you to read books.
+
+73
+00:04:15,000 --> 00:04:17,000
+Chapter about strings.
+
+74
+00:04:17,000 --> 00:04:20,000
+Learn format specifiers and flags.
+
+75
+00:04:20,000 --> 00:04:23,000
+Here is the link to official Oracle documentation.
+
+76
+00:04:24,000 --> 00:04:29,000
+I also did screenshots and left them here so you could faster find the things you need to learn.
+
+77
+00:04:30,000 --> 00:04:33,000
+Do not forget to look through the examples of string formatting.
+
+78
+00:04:34,000 --> 00:04:36,000
+Link to the source code is here.
+
+79
+00:04:36,000 --> 00:04:39,000
+Implement console program according to requirements.
+
+80
+00:04:40,000 --> 00:04:43,000
+This task to check your knowledge about string formatting.
+
+81
+00:04:44,000 --> 00:04:47,000
+To learn regular expressions, I recommend you to use this resource.
+
+82
+00:04:47,000 --> 00:04:49,000
+Let's take a look.
+
+83
+00:04:50,000 --> 00:04:51,000
+You have 15 lessons.
+
+84
+00:04:51,000 --> 00:04:55,000
+In each lesson you have description and exercise.
+
+85
+00:04:55,000 --> 00:04:58,000
+You can always find hints on the right here.
+
+86
+00:04:58,000 --> 00:05:01,000
+And in case you can't solve task.
+
+87
+00:05:01,000 --> 00:05:03,000
+Take a look at solution here.
+
+88
+00:05:07,000 --> 00:05:13,000
+Looking through the solutions will be also very efficient and will help you to learn regular expressions.
+
+89
+00:05:13,000 --> 00:05:19,000
+I wouldn't say that you need to spend hours on learning regular expressions because you will not use
+
+90
+00:05:19,000 --> 00:05:20,000
+them literally every day.
+
+91
+00:05:20,000 --> 00:05:23,000
+But still, I would recommend you to learn the basics.
+
+92
+00:05:24,000 --> 00:05:30,000
+And after that you have one more coding exercise to practice your skills in regular expressions.
+
+93
+00:05:30,000 --> 00:05:32,000
+That's all for today.
+
+94
+00:05:32,000 --> 00:05:33,000
+See you in the next lesson.
+
+95
+00:05:34,000 --> 00:05:34,000
+Your.
+
diff --git a/06 - Strings in Java/005 Source-code-of-the-example-used-in-the-lesson.url b/06 - Strings in Java/005 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..e9a5aa09af7ec6b82f1dbe81cfc1585480289a14
--- /dev/null
+++ b/06 - Strings in Java/005 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/RegularExpressions.java
\ No newline at end of file
diff --git a/06 - Strings in Java/006 Format floating-point number.html b/06 - Strings in Java/006 Format floating-point number.html
new file mode 100644
index 0000000000000000000000000000000000000000..e7d682870143c56b2c1425a2f268f223dc92e548
--- /dev/null
+++ b/06 - Strings in Java/006 Format floating-point number.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/06 - Strings in Java/007 Split Words.html b/06 - Strings in Java/007 Split Words.html
new file mode 100644
index 0000000000000000000000000000000000000000..843f25c2ba6af931de580740c711920dee9231ec
--- /dev/null
+++ b/06 - Strings in Java/007 Split Words.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/06 - Strings in Java/008 Homework review String_en.srt b/06 - Strings in Java/008 Homework review String_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..84afa7a50a6cc2e8da96fe2a1f88560cdf5e8243
--- /dev/null
+++ b/06 - Strings in Java/008 Homework review String_en.srt
@@ -0,0 +1,120 @@
+1
+00:00:00,000 --> 00:00:01,000
+Hello team!
+
+2
+00:00:01,000 --> 00:00:04,000
+Today we will review solution for coding exercises.
+
+3
+00:00:04,000 --> 00:00:07,000
+Let's start from the first one pin number formatting.
+
+4
+00:00:08,000 --> 00:00:09,000
+The solution is pretty simple.
+
+5
+00:00:10,000 --> 00:00:15,000
+Do you remember that in demo for string formatting, I put examples of precision formatting at the bottom.
+
+6
+00:00:17,000 --> 00:00:21,000
+Here also was an example about floating point number formatting.
+
+7
+00:00:21,000 --> 00:00:25,000
+Basically, you can control number of places in your floating point number.
+
+8
+00:00:26,000 --> 00:00:27,000
+And here is the solution.
+
+9
+00:00:27,000 --> 00:00:33,000
+You are using specifiers to indicate that you want to format floating point number with scale of one.
+
+10
+00:00:34,000 --> 00:00:40,000
+After that, you can use newline specifier if you wish, and format pin number again to have floating
+
+11
+00:00:40,000 --> 00:00:43,000
+point number with scale of two, and so on.
+
+12
+00:00:43,000 --> 00:00:46,000
+Here you can see results in console output.
+
+13
+00:00:47,000 --> 00:00:52,000
+The second task ask user to enter text and split words.
+
+14
+00:00:52,000 --> 00:00:55,000
+Hope you successfully learned regular expressions.
+
+15
+00:00:55,000 --> 00:00:59,000
+Now you understand that you have different ways to implement this task.
+
+16
+00:00:59,000 --> 00:01:03,000
+You can list all punctuation marks in regular expression.
+
+17
+00:01:03,000 --> 00:01:10,000
+And you can use Posix basic regular expression Posix was developed by the Institute of Electrical and
+
+18
+00:01:10,000 --> 00:01:15,000
+Electronics Engineers, mostly to provide backward compatibility with the traditional simple regular
+
+19
+00:01:15,000 --> 00:01:19,000
+expressions syntax, providing a common standard.
+
+20
+00:01:19,000 --> 00:01:26,000
+In Posix, we have different character classes and categories here in comments I listed for you Posix
+
+21
+00:01:26,000 --> 00:01:27,000
+character classes.
+
+22
+00:01:28,000 --> 00:01:34,000
+In our regular expression, we can use punctuation class and special character for all white spaces.
+
+23
+00:01:34,000 --> 00:01:40,000
+Let's split our line in case punctuation marks or spaces will be found in the string one time or more
+
+24
+00:01:40,000 --> 00:01:41,000
+times in a row.
+
+25
+00:01:42,000 --> 00:01:48,000
+Let me run this program and I will enter any text here with different amount of spaces and punctuation
+
+26
+00:01:48,000 --> 00:01:49,000
+marks.
+
+27
+00:01:53,000 --> 00:01:56,000
+Pressing enter and here all words that I entered.
+
+28
+00:01:57,000 --> 00:01:58,000
+That's all.
+
+29
+00:01:59,000 --> 00:02:02,000
+Thank you for your attention and see you in the next lesson.
+
+30
+00:02:02,000 --> 00:02:03,000
+Aethes.
+
diff --git a/06 - Strings in Java/008 Source-code-SOLUTION-Floating-point-number-formatting.url b/06 - Strings in Java/008 Source-code-SOLUTION-Floating-point-number-formatting.url
new file mode 100644
index 0000000000000000000000000000000000000000..64ffb7264c895198fa7a2e119e0967c44a740d6b
--- /dev/null
+++ b/06 - Strings in Java/008 Source-code-SOLUTION-Floating-point-number-formatting.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/hw/PINumberFormatting.java
\ No newline at end of file
diff --git a/06 - Strings in Java/008 Source-code-SOLUTION-Split-words-regular-expression.url b/06 - Strings in Java/008 Source-code-SOLUTION-Split-words-regular-expression.url
new file mode 100644
index 0000000000000000000000000000000000000000..3bee04541e2a7fca43fe68576368e47e30a4ad9b
--- /dev/null
+++ b/06 - Strings in Java/008 Source-code-SOLUTION-Split-words-regular-expression.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/hw/SplitWords.java
\ No newline at end of file
diff --git a/06 - Strings in Java/009 Quiz Strings in Java - Check yourself.html b/06 - Strings in Java/009 Quiz Strings in Java - Check yourself.html
new file mode 100644
index 0000000000000000000000000000000000000000..8d64689dcffc76edbfc5b38484cfaa9c3c142a2c
--- /dev/null
+++ b/06 - Strings in Java/009 Quiz Strings in Java - Check yourself.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Quiz Strings in Java - Check yourself
+
+
+
+
+
+
+
Quiz Strings in Java - Check yourself
+
Quiz Link: https://forms.gle/XcKL4FxK4JLoXcBFA
The quiz doesn’t require you to log in or submit any personal information. Your data privacy is my priority.
The Quiz covers content from the following lessons:
String: object creation and main methods overview
String comparison: How to compare Strings and what is String Pool
Escape Sequences in Java
String Formatting
Regular expressions in Java
Quiz Instructions:
This quiz is designed to help you check your understanding of the content from the previous lessons. All questions are based only on material covered in the lessons you've already watched, so there’s no need to worry about unfamiliar topics.
Each question has one correct answer. Select the best answer and click "Submit" when you're ready.
After submitting, you'll see your score. For each question, you earn 1 point.
Click "View Results" to see the explanations for each correct answer. Reviewing these explanations can help reinforce your understanding.
If you score below 70%, I recommend revisiting the previous lessons. However, if the explanations make sense and you’re confident in your understanding, feel free to move on.
If any explanations are unclear, please don’t hesitate to post questions in the Q&A section—I’m here to help!
+
+
+
+
diff --git a/06 - Strings in Java/external-links.txt b/06 - Strings in Java/external-links.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a7457403007250057af9d74eca6fe72328868048
--- /dev/null
+++ b/06 - Strings in Java/external-links.txt
@@ -0,0 +1,27 @@
+
+001 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/StringMainMethodsOverview.java
+
+002 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/StringComparisonDemo.java
+
+003 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/EscapeSequences.java
+
+004 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/StringFormattingDemo.java
+
+004 Source-code-from-the-lesson-Formatter-Demo
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/FormatterDemo.java
+
+005 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/RegularExpressions.java
+
+005 Homework
+https://docs.google.com/document/d/12ERxY6dUtcxo5ikfBA13_mB_7yeAByXpliDqEQ0Kjrk/edit?usp=sharing
+
+008 Source-code-SOLUTION-Floating-point-number-formatting
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/hw/PINumberFormatting.java
+
+008 Source-code-SOLUTION-Split-words-regular-expression
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/string/hw/SplitWords.java
diff --git a/07 - Control Statements/001 'if - else' construction_en.srt b/07 - Control Statements/001 'if - else' construction_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..b4d69b80f121ec260d4e908005dabd04fb3fe067
--- /dev/null
+++ b/07 - Control Statements/001 'if - else' construction_en.srt
@@ -0,0 +1,160 @@
+1
+00:00:05,000 --> 00:00:11,000
+Today, we'll talk with you about if else statement in general, you have if the election statement,
+
+2
+00:00:11,000 --> 00:00:17,000
+which allows you to control the flow of your program is execution based upon conditions known only during
+
+3
+00:00:17,000 --> 00:00:18,000
+runtime.
+
+4
+00:00:18,000 --> 00:00:22,000
+Let's take a closer look how you can take control of your program's execution.
+
+5
+00:00:22,000 --> 00:00:24,000
+Imagine we have two variables.
+
+6
+00:00:24,000 --> 00:00:30,000
+In the first one, you're storing the amount of coins which user has, and in the second variable you're
+
+7
+00:00:30,000 --> 00:00:33,000
+storing item price user wants to purchase in your application.
+
+8
+00:00:34,000 --> 00:00:40,000
+We want program behave differently when a user can and cannot purchase specified item here you can see
+
+9
+00:00:40,000 --> 00:00:43,000
+if keyword and condition in parentheses.
+
+10
+00:00:43,000 --> 00:00:48,000
+So you need to remember that expression in parenthesis should always return is a true or false.
+
+11
+00:00:49,000 --> 00:00:54,000
+In this particular case, we want to know if amount of money on an account is leathern item price or
+
+12
+00:00:54,000 --> 00:00:56,000
+no entry.
+
+13
+00:00:56,000 --> 00:00:57,000
+This condition is true.
+
+14
+00:00:57,000 --> 00:01:01,000
+Namely, the amount of money on the account is less than item price.
+
+15
+00:01:01,000 --> 00:01:07,000
+Let's notify users that he or she doesn't have enough money on their account to purchase the item.
+
+16
+00:01:07,000 --> 00:01:13,000
+Otherwise, let's proceed with purchase logic implementation and you see that I used another keyword
+
+17
+00:01:13,000 --> 00:01:20,000
+else keyword Ellsburg will be executed in case conditions specified next to each statement will be false.
+
+18
+00:01:20,000 --> 00:01:26,000
+From the syntax standpoint, I want to highlight that you not always should put braces for if an X blocks,
+
+19
+00:01:26,000 --> 00:01:31,000
+for example, if you have only one line in if or else statement you can just keep.
+
+20
+00:01:31,000 --> 00:01:37,000
+Brace's compiler is smart enough to understand that this line is associated with each block and this
+
+21
+00:01:37,000 --> 00:01:44,000
+line is associated with LS Block, even despite the fact it is possible to write in this way.
+
+22
+00:01:44,000 --> 00:01:50,000
+I don't recommend you to do so y because when you are put in braces, I would say it is more readable
+
+23
+00:01:50,000 --> 00:01:52,000
+when each book is started and finished.
+
+24
+00:01:53,000 --> 00:01:55,000
+Because for example, let me add line here.
+
+25
+00:01:58,000 --> 00:02:04,000
+At first glance, it looks like this line is part of the El's block, but it isn't to avoid cases like
+
+26
+00:02:04,000 --> 00:02:10,000
+this and potentially other errors just always use braces for if else blocks.
+
+27
+00:02:10,000 --> 00:02:13,000
+You can use nested if statements, if you wish.
+
+28
+00:02:13,000 --> 00:02:19,000
+Just always remember that alse will be always associated with the closest.
+
+29
+00:02:19,000 --> 00:02:28,000
+If in this example, this else is associated with this if but not with this one, you can build a Fail-Safe.
+
+30
+00:02:28,000 --> 00:02:28,000
+Lawder.
+
+31
+00:02:29,000 --> 00:02:34,000
+Unions are sladen cases when you need to verify condition in specific order one after another.
+
+32
+00:02:35,000 --> 00:02:40,000
+Let's imagine you have order price and you need to identify which discount you want to apply to this
+
+33
+00:02:40,000 --> 00:02:46,000
+order in case when order price is more than zero but less than one hundred, you apply five percent
+
+34
+00:02:46,000 --> 00:02:53,000
+discount in case when order price more or equal to one hundred but less than five hundred, you apply
+
+35
+00:02:53,000 --> 00:02:59,000
+10 percent discount and then case when order price is more or equal to five hundred but less than five
+
+36
+00:02:59,000 --> 00:03:02,000
+thousand, you apply a 15 percent discount.
+
+37
+00:03:03,000 --> 00:03:07,000
+In this example, we will sequence of checks to show users and most appropriate message.
+
+38
+00:03:08,000 --> 00:03:10,000
+Let's take a look at your homework.
+
+39
+00:03:10,000 --> 00:03:16,000
+I recommend you read book chapter about if statement and share two simple coding exercises for you to
+
+40
+00:03:16,000 --> 00:03:19,000
+practice your skills in using if statement.
+
diff --git a/07 - Control Statements/001 Homework.url b/07 - Control Statements/001 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..277cedcd0eb6c3b5ce34eafb92b7aa899eb39d63
--- /dev/null
+++ b/07 - Control Statements/001 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1HY9UrPLRUNc7Dz3lze26ijLNH9A3eDFkFYApf2nXIGI/edit?usp=sharing
\ No newline at end of file
diff --git a/07 - Control Statements/001 Source-code-of-the-example-used-in-the-lesson.url b/07 - Control Statements/001 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..f82ddbcd1a73193e73e7051a48bd0654329462ae
--- /dev/null
+++ b/07 - Control Statements/001 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/IfElseDemo.java
\ No newline at end of file
diff --git a/07 - Control Statements/002 Admin and Guest mode for application.html b/07 - Control Statements/002 Admin and Guest mode for application.html
new file mode 100644
index 0000000000000000000000000000000000000000..0ed866ca6a36e149bc5c7e4a0cf76d8c3196fdfc
--- /dev/null
+++ b/07 - Control Statements/002 Admin and Guest mode for application.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/07 - Control Statements/003 Simple Number Calculator.html b/07 - Control Statements/003 Simple Number Calculator.html
new file mode 100644
index 0000000000000000000000000000000000000000..1577e698794e66a866b3325782a594ee1bf98a59
--- /dev/null
+++ b/07 - Control Statements/003 Simple Number Calculator.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/07 - Control Statements/004 Homework review 'if' statement_en.srt b/07 - Control Statements/004 Homework review 'if' statement_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..88fcde63a63e04f386c229c9fc6263c772b69eb9
--- /dev/null
+++ b/07 - Control Statements/004 Homework review 'if' statement_en.srt
@@ -0,0 +1,96 @@
+1
+00:00:05,000 --> 00:00:11,000
+Let's review a solution for holding exercises in the first call, an exercise you need to start program
+
+2
+00:00:11,000 --> 00:00:15,000
+in admin or guest mode and bring different tacks to consult.
+
+3
+00:00:15,000 --> 00:00:20,000
+One of the possible solutions is to join all arguments in a single string separated by commas.
+
+4
+00:00:20,000 --> 00:00:27,000
+First, to do this, I used joint method from string class ipass separator, an array of arguments to
+
+5
+00:00:27,000 --> 00:00:33,000
+this method, and after that we can create each statement and check whether String with arguments contains
+
+6
+00:00:33,000 --> 00:00:36,000
+flogs for admin mode and guest mode.
+
+7
+00:00:36,000 --> 00:00:43,000
+If String contains these two flags simultaneously and I use an operator to check this according to our
+
+8
+00:00:43,000 --> 00:00:49,000
+requirements, we need to notify users that we need to select mode for our program in case DrinkWise
+
+9
+00:00:49,000 --> 00:00:52,000
+arguments doesn't have to flag simultaneously.
+
+10
+00:00:52,000 --> 00:00:59,000
+Then we check if string with arguments contains admin FLAC and if not, we check if arguments string
+
+11
+00:00:59,000 --> 00:01:00,000
+contains guest FLAC.
+
+12
+00:01:01,000 --> 00:01:06,000
+As we learn loops and switch statements, he will be able to implement this solution in a different
+
+13
+00:01:06,000 --> 00:01:12,000
+way to cover also some other use cases, but so far to practice skills in writing if statement.
+
+14
+00:01:12,000 --> 00:01:18,000
+This solution is good enough in the second call, an exercise you need to add no and result in different
+
+15
+00:01:18,000 --> 00:01:19,000
+formats.
+
+16
+00:01:19,000 --> 00:01:21,000
+Floating point number or integer.
+
+17
+00:01:22,000 --> 00:01:24,000
+You did similar task in the past.
+
+18
+00:01:24,000 --> 00:01:25,000
+What was changed?
+
+19
+00:01:25,000 --> 00:01:32,000
+So this time let's create if statement at the beginning of our program to check of input arguments contains
+
+20
+00:01:32,000 --> 00:01:38,000
+points separator which we usually have in floating point numbers and you can see or operator here.
+
+21
+00:01:39,000 --> 00:01:42,000
+So in case first or second argument contains point.
+
+22
+00:01:43,000 --> 00:01:48,000
+Let's try to pass double value from these arguments and bring the result of addition to console.
+
+23
+00:01:49,000 --> 00:01:55,000
+In case both arguments are integers, let's pass integer and print the result to console.
+
+24
+00:01:55,000 --> 00:01:57,000
+Hope you understood the solution.
+
diff --git a/07 - Control Statements/004 Source-code-SOLUTION-Add-Numbers.url b/07 - Control Statements/004 Source-code-SOLUTION-Add-Numbers.url
new file mode 100644
index 0000000000000000000000000000000000000000..7446b132ee758dcd5ed590d530491486ce50cc6f
--- /dev/null
+++ b/07 - Control Statements/004 Source-code-SOLUTION-Add-Numbers.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/hw/AddNumbers.java
\ No newline at end of file
diff --git a/07 - Control Statements/004 Source-code-SOLUTION-Admin-Guest-Mode.url b/07 - Control Statements/004 Source-code-SOLUTION-Admin-Guest-Mode.url
new file mode 100644
index 0000000000000000000000000000000000000000..e97fb1a6d2082131750c57b3c907067786aaa35a
--- /dev/null
+++ b/07 - Control Statements/004 Source-code-SOLUTION-Admin-Guest-Mode.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/hw/AdminGuestMode.java
\ No newline at end of file
diff --git a/07 - Control Statements/005 'switch' construction_en.srt b/07 - Control Statements/005 'switch' construction_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..e1eb528ab910d3eae5271f76b509be03707daa2c
--- /dev/null
+++ b/07 - Control Statements/005 'switch' construction_en.srt
@@ -0,0 +1,220 @@
+1
+00:00:05,000 --> 00:00:10,000
+They will learn another selection statement I'm talking about, so each statement, I will show you
+
+2
+00:00:10,000 --> 00:00:14,000
+how you can use it and what the pros and cons of using it.
+
+3
+00:00:14,000 --> 00:00:20,000
+The switch statement is easy way to explain the logic of your program's execution based on the specific
+
+4
+00:00:20,000 --> 00:00:21,000
+expression.
+
+5
+00:00:21,000 --> 00:00:24,000
+Let's take a look at the next example to understand the topic better.
+
+6
+00:00:25,000 --> 00:00:30,000
+Let's imagine you are writing code to implement logic for online store on the back end as you learn
+
+7
+00:00:30,000 --> 00:00:33,000
+more will develop our own web application.
+
+8
+00:00:34,000 --> 00:00:38,000
+Right now, imagine that before applying final price for checkout for your customer.
+
+9
+00:00:38,000 --> 00:00:42,000
+You want to apply a personalized discount for this user.
+
+10
+00:00:42,000 --> 00:00:48,000
+To do this, you need to execute a different code based on the customer status, customer status, maybe
+
+11
+00:00:48,000 --> 00:00:51,000
+be guest, regular customer and premium customer.
+
+12
+00:00:51,000 --> 00:00:53,000
+OK, definitely.
+
+13
+00:00:53,000 --> 00:00:57,000
+It can be different variations in business logic and namin and so on.
+
+14
+00:00:57,000 --> 00:01:01,000
+But for the sake of example, let it be this way here.
+
+15
+00:01:01,000 --> 00:01:04,000
+Next to switch keywords you can specify expression.
+
+16
+00:01:05,000 --> 00:01:11,000
+We passed link to string object, which contains customer status, very specific requirements for expression
+
+17
+00:01:11,000 --> 00:01:11,000
+type.
+
+18
+00:01:12,000 --> 00:01:18,000
+The expression type should be a bite or short or charr or end or string or enum type.
+
+19
+00:01:19,000 --> 00:01:20,000
+What is enum type.
+
+20
+00:01:20,000 --> 00:01:23,000
+I will explain you in the separate lesson here.
+
+21
+00:01:23,000 --> 00:01:24,000
+Have different cases.
+
+22
+00:01:24,000 --> 00:01:26,000
+Case when expression will be guest.
+
+23
+00:01:26,000 --> 00:01:30,000
+Case when expression will be a regular customer or premium customer.
+
+24
+00:01:31,000 --> 00:01:34,000
+The value of the expression is compared with each value in case statement.
+
+25
+00:01:35,000 --> 00:01:39,000
+If Match is found, the code following that case statement is executed.
+
+26
+00:01:40,000 --> 00:01:46,000
+Default statement is optional, but in case no match was found, the full blog is executed.
+
+27
+00:01:46,000 --> 00:01:50,000
+The brake statement is used to terminate a statement sequence.
+
+28
+00:01:50,000 --> 00:01:53,000
+So it is similar to exit from Swedenborg behavior.
+
+29
+00:01:54,000 --> 00:01:58,000
+In this case, our customer status is premium customer.
+
+30
+00:01:58,000 --> 00:02:00,000
+That's why this blog is executed.
+
+31
+00:02:02,000 --> 00:02:04,000
+Now, let's take a look at the next example.
+
+32
+00:02:06,000 --> 00:02:13,000
+In this example, I Werrimull equals to one in case one doesn't have brake statement, that means that
+
+33
+00:02:13,000 --> 00:02:19,000
+much will be found here and coach will be executed starting from here until break statement is executed.
+
+34
+00:02:20,000 --> 00:02:26,000
+And here in the next example, you can see how the false statement works, I is equal to 10 right now
+
+35
+00:02:27,000 --> 00:02:28,000
+and there is no case for 10.
+
+36
+00:02:29,000 --> 00:02:31,000
+That's why the full look is executed.
+
+37
+00:02:33,000 --> 00:02:38,000
+And now when you know what switch statement is, let's compare it with each statement and we'll try
+
+38
+00:02:38,000 --> 00:02:44,000
+to identify pros and cons, I believe you remember all examples and you'll notice the switch can test
+
+39
+00:02:44,000 --> 00:02:51,000
+only for equality, whereas if statement can test expressions based on ranges of values, you can not
+
+40
+00:02:51,000 --> 00:02:54,000
+specify range in case statements inside switch block.
+
+41
+00:02:55,000 --> 00:03:00,000
+But on the other hand, switch statement demonstrates better performance when it comes to multiple parts
+
+42
+00:03:00,000 --> 00:03:01,000
+of execution.
+
+43
+00:03:02,000 --> 00:03:08,000
+That is because compiler creates so-called jump table for speech statement when during runtime expression
+
+44
+00:03:08,000 --> 00:03:16,000
+is verified, execution goes directly to the specific case in case was if else if the order verifies
+
+45
+00:03:16,000 --> 00:03:21,000
+each condition and in case there are a lot of such conditions, obviously it takes more time.
+
+46
+00:03:21,000 --> 00:03:25,000
+Then we switch statement and the last one, but not the least.
+
+47
+00:03:25,000 --> 00:03:29,000
+Some developers consider syntax of speech statement more readable than if statement.
+
+48
+00:03:30,000 --> 00:03:35,000
+Probably that is because clear casebooks which visually separates code blocks better from each other
+
+49
+00:03:36,000 --> 00:03:36,000
+also.
+
+50
+00:03:36,000 --> 00:03:42,000
+Probably that is because sometimes conditions in EHF statements might be complicated in comparison with
+
+51
+00:03:42,000 --> 00:03:47,000
+swich block when you don't have one conditions just constants next to case keyword.
+
+52
+00:03:47,000 --> 00:03:50,000
+And that's all what you need to know about which statement.
+
+53
+00:03:50,000 --> 00:03:52,000
+Let's take a look at your homework.
+
+54
+00:03:53,000 --> 00:03:59,000
+Recommended the Red Book chapter about switch statement and one coding exercise to practice your skills
+
+55
+00:03:59,000 --> 00:04:00,000
+was right and switch statement.
+
diff --git a/07 - Control Statements/005 Homework.url b/07 - Control Statements/005 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..320b2041b106de184705e2352ebd96b41f9459c7
--- /dev/null
+++ b/07 - Control Statements/005 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1foicOJHNEbTvMHJQveg-HvbaWP8JJ7V0pEQ7tAwDSKU/edit?usp=sharing
\ No newline at end of file
diff --git a/07 - Control Statements/005 Source-code-of-the-example-used-in-the-lesson.url b/07 - Control Statements/005 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..92e0a025d09d2d58946c119e48d5953eaf584613
--- /dev/null
+++ b/07 - Control Statements/005 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/SwitchDemo.java
\ No newline at end of file
diff --git a/07 - Control Statements/006 User Activity Selector.html b/07 - Control Statements/006 User Activity Selector.html
new file mode 100644
index 0000000000000000000000000000000000000000..460dc76841e784ee7f131df991dd3de14763afaa
--- /dev/null
+++ b/07 - Control Statements/006 User Activity Selector.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/07 - Control Statements/007 Homework review 'switch' statement_en.srt b/07 - Control Statements/007 Homework review 'switch' statement_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..e5c5df6b2d37781724e152d39d29865534dafca9
--- /dev/null
+++ b/07 - Control Statements/007 Homework review 'switch' statement_en.srt
@@ -0,0 +1,32 @@
+1
+00:00:05,000 --> 00:00:11,000
+Let's review together homework first, which statement you had to implement program which will behave
+
+2
+00:00:11,000 --> 00:00:17,000
+differently based on user input, user can choose different actions and you should bring different texts
+
+3
+00:00:17,000 --> 00:00:17,000
+to consult.
+
+4
+00:00:18,000 --> 00:00:22,000
+First of all, we ask user what action he or she would like to perform.
+
+5
+00:00:23,000 --> 00:00:26,000
+We use scanner object for that afterwards.
+
+6
+00:00:26,000 --> 00:00:32,000
+We use user input and switch statement as an expression and we have different cases here to address
+
+7
+00:00:32,000 --> 00:00:39,000
+different user input in case user enters any random value default statement will print to console these
+
+8
+00:00:39,000 --> 00:00:43,000
+text and will ask you to turn to one of the listed values.
+
diff --git a/07 - Control Statements/007 Source-code-SOLUTION-User-Activity-Selector.url b/07 - Control Statements/007 Source-code-SOLUTION-User-Activity-Selector.url
new file mode 100644
index 0000000000000000000000000000000000000000..18b9087c57c4a38cf90d55fc43e0b92418341868
--- /dev/null
+++ b/07 - Control Statements/007 Source-code-SOLUTION-User-Activity-Selector.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/hw/UserActivitySelector.java
\ No newline at end of file
diff --git a/07 - Control Statements/008 Quiz Control Statements - Check yourself.html b/07 - Control Statements/008 Quiz Control Statements - Check yourself.html
new file mode 100644
index 0000000000000000000000000000000000000000..05e0ce691e6f840197421721cd40a64a4b582d6f
--- /dev/null
+++ b/07 - Control Statements/008 Quiz Control Statements - Check yourself.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Quiz Control Statements - Check yourself
+
+
+
+
+
+
+
Quiz Control Statements - Check yourself
+
Quiz Link: https://forms.gle/qpYb2B8MpQo8mUUg6
The quiz doesn’t require you to log in or submit any personal information. Your data privacy is my priority.
The Quiz covers content from the following lessons:
‘if-else’ construction
‘switch’ construction
Quiz Instructions:
This quiz is designed to help you check your understanding of the content from the previous lessons. All questions are based only on material covered in the lessons you've already watched, so there’s no need to worry about unfamiliar topics.
Each question has one correct answer. Select the best answer and click "Submit" when you're ready.
After submitting, you'll see your score. For each question, you earn 1 point.
Click "View Results" to see the explanations for each correct answer. Reviewing these explanations can help reinforce your understanding.
If you score below 70%, I recommend revisiting the previous lessons. However, if the explanations make sense and you’re confident in your understanding, feel free to move on.
If any explanations are unclear, please don’t hesitate to post questions in the Q&A section—I’m here to help!
+
+
+
+
diff --git a/07 - Control Statements/external-links.txt b/07 - Control Statements/external-links.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4edf6bc7c9fbf24c14c2ba8b458d812ae8c34532
--- /dev/null
+++ b/07 - Control Statements/external-links.txt
@@ -0,0 +1,21 @@
+
+001 Homework
+https://docs.google.com/document/d/1HY9UrPLRUNc7Dz3lze26ijLNH9A3eDFkFYApf2nXIGI/edit?usp=sharing
+
+001 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/IfElseDemo.java
+
+004 Source-code-SOLUTION-Admin-Guest-Mode
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/hw/AdminGuestMode.java
+
+004 Source-code-SOLUTION-Add-Numbers
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/hw/AddNumbers.java
+
+005 Homework
+https://docs.google.com/document/d/1foicOJHNEbTvMHJQveg-HvbaWP8JJ7V0pEQ7tAwDSKU/edit?usp=sharing
+
+005 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/SwitchDemo.java
+
+007 Source-code-SOLUTION-User-Activity-Selector
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/hw/UserActivitySelector.java
diff --git a/08 - Miscellaneous/001 Random numbers generation_en.srt b/08 - Miscellaneous/001 Random numbers generation_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..0eb26b1f845e1745a1a81fc64a7372e6f0d9e349
--- /dev/null
+++ b/08 - Miscellaneous/001 Random numbers generation_en.srt
@@ -0,0 +1,128 @@
+1
+00:00:00,000 --> 00:00:00,000
+Hello, Tim.
+
+2
+00:00:00,000 --> 00:00:05,000
+Today I will show you how you can generate random numbers from the lesson about math class.
+
+3
+00:00:05,000 --> 00:00:11,000
+You already are aware that you have mass random method, but today I will show you another way to create
+
+4
+00:00:11,000 --> 00:00:12,000
+random number.
+
+5
+00:00:12,000 --> 00:00:15,000
+It can be that your program needs some random number.
+
+6
+00:00:15,000 --> 00:00:21,000
+For example, you want to implement dice game and when player wants to roll the dice you need to generate
+
+7
+00:00:21,000 --> 00:00:22,000
+random number.
+
+8
+00:00:22,000 --> 00:00:24,000
+Let's take a look how you can do this.
+
+9
+00:00:25,000 --> 00:00:27,000
+You need to create new object of type.
+
+10
+00:00:27,000 --> 00:00:31,000
+Random eclipse will suggest you to import class Java.util.random.
+
+11
+00:00:32,000 --> 00:00:35,000
+This class is used to generate pseudo random numbers.
+
+12
+00:00:35,000 --> 00:00:40,000
+I don't want to dive into the details of how pseudo random numbers are generated, and why they are
+
+13
+00:00:40,000 --> 00:00:43,000
+called pseudo random, but not just random.
+
+14
+00:00:43,000 --> 00:00:49,000
+To be honest, this information won't help you in the nearest future, and it is a bit complicated for
+
+15
+00:00:49,000 --> 00:00:50,000
+understanding right now.
+
+16
+00:00:51,000 --> 00:00:57,000
+In short, it is obvious that absolutely random number is impossible to generate, so usually some algorithm
+
+17
+00:00:57,000 --> 00:00:59,000
+is used to generate sequence of numbers.
+
+18
+00:01:00,000 --> 00:01:06,000
+That's why these numbers can't be called completely random, because there is predefined algorithm in
+
+19
+00:01:06,000 --> 00:01:08,000
+place which generates the sequence.
+
+20
+00:01:09,000 --> 00:01:14,000
+After you created instance of random type, you can use its methods to generate either int, float,
+
+21
+00:01:14,000 --> 00:01:16,000
+double long or boolean.
+
+22
+00:01:16,000 --> 00:01:18,000
+Just type next int.
+
+23
+00:01:18,000 --> 00:01:24,000
+In case when you want to generate pseudorandom int or next double in case when you want to generate
+
+24
+00:01:24,000 --> 00:01:26,000
+pseudorandom double, and so on.
+
+25
+00:01:26,000 --> 00:01:32,000
+If you want to generate ints within the specific range, just pass integer to the next int method.
+
+26
+00:01:32,000 --> 00:01:36,000
+In this case, we will generate random number from 0 to 99.
+
+27
+00:01:37,000 --> 00:01:42,000
+If you want to generate integers from 1 to 100, just write something like this Ethz.
+
+28
+00:01:42,000 --> 00:01:46,000
+During your homework, you will be asked to generate random numbers for some tasks.
+
+29
+00:01:46,000 --> 00:01:49,000
+And now you know how to do this.
+
+30
+00:01:49,000 --> 00:01:51,000
+Thanks a lot for your attention.
+
+31
+00:01:51,000 --> 00:01:53,000
+See you in the next lesson.
+
+32
+00:01:53,000 --> 00:01:53,000
+Ay ay ay ay ay ay.
+
diff --git a/08 - Miscellaneous/001 Source-code-of-the-example-used-in-the-lesson.url b/08 - Miscellaneous/001 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..6d1c57ac3c1cfbcdb3ccb4929236c34bd75dec8d
--- /dev/null
+++ b/08 - Miscellaneous/001 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/misc/RandomDemo.java
\ No newline at end of file
diff --git a/08 - Miscellaneous/external-links.txt b/08 - Miscellaneous/external-links.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8ca6a4f455245193f9204d272d7556d9f7812df5
--- /dev/null
+++ b/08 - Miscellaneous/external-links.txt
@@ -0,0 +1,3 @@
+
+001 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/misc/RandomDemo.java
diff --git a/09 - Iteration Statements (Loops) in Java/001 'while' loop_en.srt b/09 - Iteration Statements (Loops) in Java/001 'while' loop_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..940c764d37837a51a79cd786366f223de4e7d25a
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/001 'while' loop_en.srt
@@ -0,0 +1,100 @@
+1
+00:00:05,000 --> 00:00:11,000
+We start section about iteration statements in Java, these statements create what we commonly call
+
+2
+00:00:11,000 --> 00:00:11,000
+loops.
+
+3
+00:00:12,000 --> 00:00:17,000
+We'll discuss all loops which exist in Java and I will show you how you can use them.
+
+4
+00:00:17,000 --> 00:00:20,000
+I will put stress on best practices and when to use which loop.
+
+5
+00:00:21,000 --> 00:00:25,000
+But before we jump to the practical examples, let's discuss when do we need loops?
+
+6
+00:00:26,000 --> 00:00:29,000
+A lot of times in your program you need to perform repeatable actions.
+
+7
+00:00:30,000 --> 00:00:35,000
+For example, you have multiple items in the cart in the online store and you need to calculate total
+
+8
+00:00:35,000 --> 00:00:37,000
+price of the card.
+
+9
+00:00:37,000 --> 00:00:43,000
+You can iterate over each item in the cart and get its price to get total price, or you get a request
+
+10
+00:00:43,000 --> 00:00:48,000
+to the database to fetch data about sellers and you receive multiple rows from database.
+
+11
+00:00:48,000 --> 00:00:55,000
+You need to iterate over each row to create object of seller type, for example, or you have an array
+
+12
+00:00:55,000 --> 00:01:01,000
+of users and you need to leave only users which have more than one thousand bonus credits on their accounts
+
+13
+00:01:01,000 --> 00:01:03,000
+and send them a promotional offer.
+
+14
+00:01:03,000 --> 00:01:10,000
+To do this, you need to fetch all users from database, iterate over each one, understand how many
+
+15
+00:01:10,000 --> 00:01:14,000
+bonus credits has each user, and leave only those who have one thousand and more.
+
+16
+00:01:15,000 --> 00:01:22,000
+There are four types of loops available for us in Java in this lesson we'll discuss while loop while
+
+17
+00:01:22,000 --> 00:01:24,000
+loop repeats statement or code book.
+
+18
+00:01:24,000 --> 00:01:31,000
+While controlling expression is true, when expression specified here becomes false, then program precede
+
+19
+00:01:31,000 --> 00:01:34,000
+execution from the next line following after a while loop.
+
+20
+00:01:35,000 --> 00:01:36,000
+The calibrates is not needed.
+
+21
+00:01:36,000 --> 00:01:43,000
+In case you want to repeat a single statement, in case you want to repeat code block, use curly braces.
+
+22
+00:01:43,000 --> 00:01:49,000
+You need to know that the body of the loop won't be executed even once if the condition is false to
+
+23
+00:01:49,000 --> 00:01:49,000
+begin with.
+
+24
+00:01:50,000 --> 00:01:56,000
+If you want to create infinite loop just plays through boolean literal incontrol an expression like
+
+25
+00:01:56,000 --> 00:01:56,000
+this.
+
diff --git a/09 - Iteration Statements (Loops) in Java/001 Source-code-of-the-example-used-in-the-lesson.url b/09 - Iteration Statements (Loops) in Java/001 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..3d414320696d9d5801fdfee98205ec3ceb8143c9
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/001 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/WhileLoopDemo.java
\ No newline at end of file
diff --git a/09 - Iteration Statements (Loops) in Java/002 'do-while' loop_en.srt b/09 - Iteration Statements (Loops) in Java/002 'do-while' loop_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..02bd62001c7f668f898f5ed688da0ef87ee31276
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/002 'do-while' loop_en.srt
@@ -0,0 +1,76 @@
+1
+00:00:05,000 --> 00:00:11,000
+In this lesson, we'll review with you do while look, there might be cases when you need to repeat
+
+2
+00:00:11,000 --> 00:00:17,000
+some actions multiple times, but you are sure that you need to repeat look, at least once, I believe
+
+3
+00:00:17,000 --> 00:00:21,000
+you remember that in a while, loop code will not be executed.
+
+4
+00:00:21,000 --> 00:00:21,000
+Never.
+
+5
+00:00:21,000 --> 00:00:28,000
+If controlling expression is false in the while loop, you can guarantee that body of the loop will
+
+6
+00:00:28,000 --> 00:00:29,000
+be executed at least once.
+
+7
+00:00:30,000 --> 00:00:35,000
+You need to write the do keyword after that, whatever the loop is described.
+
+8
+00:00:35,000 --> 00:00:39,000
+And after that you have while statement was conditioned inside.
+
+9
+00:00:40,000 --> 00:00:45,000
+To be honest, it's hard to think of real life scenario when we need the while loop and when we use
+
+10
+00:00:45,000 --> 00:00:53,000
+it or while loop, but the one scenario which pops up in my mind is entering Pincott in the ATM before
+
+11
+00:00:53,000 --> 00:00:58,000
+dispensing some cash at the end, requested Pincott from you, the Operation of Freedom.
+
+12
+00:00:58,000 --> 00:01:03,000
+Pincott should be performed at least once in the case Billancourt is not valid.
+
+13
+00:01:03,000 --> 00:01:07,000
+Would it be the section one more time and request and Pincott again?
+
+14
+00:01:08,000 --> 00:01:12,000
+In case Pincott is correct, you need to change condition to break loop.
+
+15
+00:01:12,000 --> 00:01:19,000
+In this example, you can see that I have Contre, which is initialized with zero by default, while
+
+16
+00:01:19,000 --> 00:01:22,000
+counter is less than five will keep iterating.
+
+17
+00:01:23,000 --> 00:01:27,000
+And in this example you can see that even one counter is already five.
+
+18
+00:01:27,000 --> 00:01:34,000
+The body of the loop is executed after the controlling expression is verified and program is finished
+
+19
+00:01:35,000 --> 00:01:37,000
+and they see this text in console output.
+
diff --git a/09 - Iteration Statements (Loops) in Java/002 Source-code-of-the-example-used-in-the-lesson.url b/09 - Iteration Statements (Loops) in Java/002 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..bdf2403494ff4e52d1ee9b7c316dbec3e49c3294
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/002 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/DoWhileLoopDemo.java
\ No newline at end of file
diff --git a/09 - Iteration Statements (Loops) in Java/003 'for' with condition loop_en.srt b/09 - Iteration Statements (Loops) in Java/003 'for' with condition loop_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..59eee0ff6d56831796fd61c32723e956f08e4c7a
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/003 'for' with condition loop_en.srt
@@ -0,0 +1,140 @@
+1
+00:00:05,000 --> 00:00:11,000
+In this lesson, we'll learn follow up with condition, let's understand how Follow operates on this
+
+2
+00:00:11,000 --> 00:00:12,000
+example.
+
+3
+00:00:12,000 --> 00:00:14,000
+We need to write for keywords first.
+
+4
+00:00:15,000 --> 00:00:21,000
+After that, we put parentheses and inside we have initialization expression, condition and iteration.
+
+5
+00:00:22,000 --> 00:00:25,000
+Initialization expression is executed only once.
+
+6
+00:00:25,000 --> 00:00:30,000
+The goal is to initialize counter here, which allows us to track the amount of iterations.
+
+7
+00:00:31,000 --> 00:00:38,000
+By the way, what is iteration and iteration is a repetition of loop body, usually iteration, but
+
+8
+00:00:38,000 --> 00:00:40,000
+it is surrounded with braces.
+
+9
+00:00:40,000 --> 00:00:47,000
+So one execution of this block is one iteration after optimisation part we write condition.
+
+10
+00:00:48,000 --> 00:00:51,000
+This is condition which is verified on each iteration of the loop.
+
+11
+00:00:51,000 --> 00:00:54,000
+If condition is true, Laborie is executed.
+
+12
+00:00:54,000 --> 00:01:01,000
+If condition is false, Laborie is not executed and program to execution from the next line after the
+
+13
+00:01:01,000 --> 00:01:01,000
+loop.
+
+14
+00:01:01,000 --> 00:01:04,000
+In this case, we limited amount of iterations by five.
+
+15
+00:01:05,000 --> 00:01:08,000
+The next part of the for loop is iteration.
+
+16
+00:01:08,000 --> 00:01:16,000
+This part will be executed after each loop iteration, usually a counter increment or is specified here.
+
+17
+00:01:16,000 --> 00:01:17,000
+So let's recap.
+
+18
+00:01:18,000 --> 00:01:20,000
+Initially I variable is equal to zero.
+
+19
+00:01:21,000 --> 00:01:28,000
+I will be incremented on each iteration and when I will be equal to five will not execute the loop body.
+
+20
+00:01:28,000 --> 00:01:29,000
+I will be zero.
+
+21
+00:01:29,000 --> 00:01:31,000
+One, two, three, four.
+
+22
+00:01:32,000 --> 00:01:37,000
+That is five iterations in total and we will bring the text to console five times.
+
+23
+00:01:38,000 --> 00:01:44,000
+I would like to add a few more things here, first of all, from the syntax standpoint, it is not necessary
+
+24
+00:01:44,000 --> 00:01:47,000
+to use Brace's if you have only one line in for loop.
+
+25
+00:01:47,000 --> 00:01:52,000
+So if I will remove braces here, everything will work as expected.
+
+26
+00:01:52,000 --> 00:01:56,000
+But personally, I would recommend you keep braces for better readability.
+
+27
+00:01:57,000 --> 00:02:03,000
+Another thing to add here is that you can initialize counter outside of the loop if you wish, or you
+
+28
+00:02:03,000 --> 00:02:07,000
+can make increment inside the iteration body if you wish.
+
+29
+00:02:08,000 --> 00:02:10,000
+And even look like this is possible.
+
+30
+00:02:11,000 --> 00:02:18,000
+So this is an example of infinite loop, which will never end, you see that there is no condition here.
+
+31
+00:02:19,000 --> 00:02:25,000
+There might be cases when you need to use more than one statement initialization or in iteration part.
+
+32
+00:02:26,000 --> 00:02:33,000
+You can use coma, for example, as you can see here, I'm using coma to declare two counters and one
+
+33
+00:02:33,000 --> 00:02:38,000
+counter will be implemented after each iteration and another one will be documented.
+
+34
+00:02:38,000 --> 00:02:39,000
+And here how it works.
+
+35
+00:02:41,000 --> 00:02:44,000
+That is all what I wanted to share with you regarding for this condition, look.
+
diff --git a/09 - Iteration Statements (Loops) in Java/003 Source-code-of-the-example-used-in-the-lesson.url b/09 - Iteration Statements (Loops) in Java/003 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..3c971c9c03f505fa0d7b16f186642c3f42135359
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/003 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/ForWithConditionLoopDemo.java
\ No newline at end of file
diff --git a/09 - Iteration Statements (Loops) in Java/004 'for each' loop_en.srt b/09 - Iteration Statements (Loops) in Java/004 'for each' loop_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..47a244426c20cae5da12b642de06c538678fcfb9
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/004 'for each' loop_en.srt
@@ -0,0 +1,92 @@
+1
+00:00:05,000 --> 00:00:08,000
+In this lesson, we'll review with you for each loop.
+
+2
+00:00:09,000 --> 00:00:11,000
+It's another variation of for loop.
+
+3
+00:00:11,000 --> 00:00:17,000
+This type of loop was created to cycle over collection of elements such as arrays from start to finish.
+
+4
+00:00:18,000 --> 00:00:24,000
+You can't change direction of iteration in for each loop, for each loop is often called as enhanced
+
+5
+00:00:24,000 --> 00:00:27,000
+for loop to make you understand it better.
+
+6
+00:00:27,000 --> 00:00:29,000
+Let me start from the example.
+
+7
+00:00:30,000 --> 00:00:34,000
+We have an array of INTs and we want to print some of all INTs for Omeri.
+
+8
+00:00:35,000 --> 00:00:37,000
+Let's iterate over this array.
+
+9
+00:00:37,000 --> 00:00:44,000
+Do not declare a counter and condition I can just use for each loop we have for key words here.
+
+10
+00:00:44,000 --> 00:00:48,000
+After that we have iteration, variable and collection of elements.
+
+11
+00:00:48,000 --> 00:00:53,000
+There are various types of collections can be used in foreach loop, such as those which are present
+
+12
+00:00:53,000 --> 00:00:55,000
+in Java collections framework.
+
+13
+00:00:55,000 --> 00:00:57,000
+We'll discuss them later in this course.
+
+14
+00:00:58,000 --> 00:01:02,000
+But in this lesson we'll use array since you are already familiar with arrays.
+
+15
+00:01:03,000 --> 00:01:09,000
+Iteration variable will receive elements from collection one at a time on each iteration of the loop
+
+16
+00:01:09,000 --> 00:01:14,000
+element from the array will be assigned to this variable and inside the loop body.
+
+17
+00:01:14,000 --> 00:01:19,000
+You can use this variable to implement your business logic and program output.
+
+18
+00:01:19,000 --> 00:01:23,000
+You can see that we bring to console some of all numbers from the array.
+
+19
+00:01:23,000 --> 00:01:29,000
+This loop is finished when the last element is retrieved from the collection, but you can stop the
+
+20
+00:01:29,000 --> 00:01:30,000
+loop early if you wish.
+
+21
+00:01:31,000 --> 00:01:35,000
+We are going to have separate lessoned where I will show you how we can break any loop.
+
+22
+00:01:36,000 --> 00:01:44,000
+One more trick to write for each loop faster in eclipse, just type for each breath control space and
+
+23
+00:01:44,000 --> 00:01:44,000
+press enter.
+
diff --git a/09 - Iteration Statements (Loops) in Java/004 Source-code-of-the-example-used-in-the-lesson.url b/09 - Iteration Statements (Loops) in Java/004 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..b5d8166789317bc5158dd2e6965686be72ce0b4f
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/004 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/ForeachLoopDemo.java
\ No newline at end of file
diff --git a/09 - Iteration Statements (Loops) in Java/005 Nested loops_en.srt b/09 - Iteration Statements (Loops) in Java/005 Nested loops_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..f8ffff69d76a6f2f91a38ab2378275dbb86dcf1f
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/005 Nested loops_en.srt
@@ -0,0 +1,44 @@
+1
+00:00:05,000 --> 00:00:11,000
+In this short lesson, we'll discuss when we need to use nested loops and how to do this, you can insert
+
+2
+00:00:11,000 --> 00:00:18,000
+loop inside another one, like in this example here I have my main loop and here is nested one.
+
+3
+00:00:18,000 --> 00:00:19,000
+When do you need this?
+
+4
+00:00:20,000 --> 00:00:25,000
+For example, when you iterate over multidimensional array from the index standpoint to have nested
+
+5
+00:00:25,000 --> 00:00:31,000
+loop, you just need to put one loop inside and another the one you should have called for this and
+
+6
+00:00:31,000 --> 00:00:33,000
+use Brace's in the output.
+
+7
+00:00:33,000 --> 00:00:40,000
+You see that the first iteration of Main Loop I started I equals to zero and after that three iterations
+
+8
+00:00:40,000 --> 00:00:42,000
+of nested loop are performed.
+
+9
+00:00:42,000 --> 00:00:46,000
+Here you can see zero one and two after that.
+
+10
+00:00:46,000 --> 00:00:52,000
+The second iteration of Main Loop is started and again three iterations of nested loop are performed
+
+11
+00:00:52,000 --> 00:00:53,000
+and so on.
+
diff --git a/09 - Iteration Statements (Loops) in Java/005 Source-code-of-the-example-used-in-the-lesson.url b/09 - Iteration Statements (Loops) in Java/005 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..d517b5fc2880c15d870c480783a80301ed417581
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/005 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/NestedLoopsDemo.java
\ No newline at end of file
diff --git a/09 - Iteration Statements (Loops) in Java/006 Jump Statements - Break and Continue_en.srt b/09 - Iteration Statements (Loops) in Java/006 Jump Statements - Break and Continue_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..0abe261a19a28bb7b9627e0ff41658c82dfb757b
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/006 Jump Statements - Break and Continue_en.srt
@@ -0,0 +1,128 @@
+1
+00:00:05,000 --> 00:00:10,000
+And this lesson will answer the question, what are James statements and loops and how to use them?
+
+2
+00:00:11,000 --> 00:00:16,000
+Java supports different statements which can transfer control to another part of your program.
+
+3
+00:00:16,000 --> 00:00:19,000
+In this lesson, we'll discuss, break and continue statement.
+
+4
+00:00:20,000 --> 00:00:23,000
+Sometimes you want to finish the current loop iteration faster.
+
+5
+00:00:23,000 --> 00:00:29,000
+For example, in specific cases, you don't want to execute the whole code block, but you don't want
+
+6
+00:00:29,000 --> 00:00:30,000
+to stop iterations.
+
+7
+00:00:31,000 --> 00:00:32,000
+What to do in this case?
+
+8
+00:00:33,000 --> 00:00:36,000
+Just use continuous statement, continuous statement.
+
+9
+00:00:36,000 --> 00:00:39,000
+Most controlled to the conditional expression which controls little.
+
+10
+00:00:40,000 --> 00:00:43,000
+For example, you want to bring only odd numbers to consult.
+
+11
+00:00:44,000 --> 00:00:46,000
+Let's check what the number is called or.
+
+12
+00:00:47,000 --> 00:00:53,000
+If reminder of division by two is equal to zero, that means that number is even then.
+
+13
+00:00:53,000 --> 00:00:55,000
+Let's start new iteration of the loop.
+
+14
+00:00:55,000 --> 00:00:58,000
+And right now I equals to one.
+
+15
+00:00:58,000 --> 00:01:05,000
+We have old number now that means this statement will be executed because we will not call continue
+
+16
+00:01:05,000 --> 00:01:06,000
+this time.
+
+17
+00:01:07,000 --> 00:01:08,000
+That's how continuous statement works.
+
+18
+00:01:09,000 --> 00:01:10,000
+Breaks statement.
+
+19
+00:01:10,000 --> 00:01:12,000
+You can break any loop you would like.
+
+20
+00:01:13,000 --> 00:01:16,000
+There is no need to keep iterating if there is no sense in it anymore.
+
+21
+00:01:17,000 --> 00:01:21,000
+Let's break this loop when I will be equal to three so we bring the token.
+
+22
+00:01:21,000 --> 00:01:27,000
+So I value when it was zero, one, two and one and become equals to three.
+
+23
+00:01:27,000 --> 00:01:32,000
+We break the loop after that program executes next line after the loop.
+
+24
+00:01:33,000 --> 00:01:35,000
+And here's another iteration statement.
+
+25
+00:01:36,000 --> 00:01:41,000
+What you need to know about your statement is that it breaks the closest loop here you can see nested
+
+26
+00:01:41,000 --> 00:01:47,000
+loop when J equals two three, we break the loop based on the console output.
+
+27
+00:01:47,000 --> 00:01:53,000
+You can see that the main loop is not stopped because this line is still executed five times.
+
+28
+00:01:53,000 --> 00:01:55,000
+Even despite that, we have break statement here.
+
+29
+00:01:55,000 --> 00:02:01,000
+That means that every time J equals two three, we break the loop, but only nested one.
+
+30
+00:02:01,000 --> 00:02:07,000
+So we still have five iteration of Main Loop, but every time we come to the nested look, we break
+
+31
+00:02:07,000 --> 00:02:08,000
+it after three iterations.
+
+32
+00:02:09,000 --> 00:02:11,000
+Now, you know everything you need to know about jam statements.
+
diff --git a/09 - Iteration Statements (Loops) in Java/006 Source-code-of-the-example-used-in-the-lesson.url b/09 - Iteration Statements (Loops) in Java/006 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..10878d0926f7761721f743f70f050888865dc511
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/006 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/JumpStatementsDemo.java
\ No newline at end of file
diff --git a/09 - Iteration Statements (Loops) in Java/007 Homework.url b/09 - Iteration Statements (Loops) in Java/007 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..8134ec401ace102c445a75d621651e1af1c51366
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/007 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1MAiinUw3l7JpYFPDH2X1sBbDqTYrbHbGXwSCL2o0N2g/edit?usp=sharing
\ No newline at end of file
diff --git a/09 - Iteration Statements (Loops) in Java/007 Labels in Java_en.srt b/09 - Iteration Statements (Loops) in Java/007 Labels in Java_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..7861d3dc9aed4eaa67da5d167dced1868dbdbe7d
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/007 Labels in Java_en.srt
@@ -0,0 +1,136 @@
+1
+00:00:05,000 --> 00:00:11,000
+They will discuss what the labels endure and how you can use them labels in combination with break and
+
+2
+00:00:11,000 --> 00:00:16,000
+continue statement, allow us to implement some kind of go to statement in Java.
+
+3
+00:00:16,000 --> 00:00:23,000
+But first of all, what is go to statement go to is a statement in different programming languages which
+
+4
+00:00:23,000 --> 00:00:28,000
+allows you to pass control of execution to any line in your code without any condition.
+
+5
+00:00:29,000 --> 00:00:35,000
+The jump two lines of code are usually identified by labels, but you have to consider it to be a bad
+
+6
+00:00:35,000 --> 00:00:36,000
+practice.
+
+7
+00:00:36,000 --> 00:00:43,000
+That's why in Java go to is reserved keyword but never used why it is considered to be a bad practice
+
+8
+00:00:43,000 --> 00:00:48,000
+because code which contains goto statements is less readable and it is harder to maintain.
+
+9
+00:00:49,000 --> 00:00:52,000
+Also, it is extremely hard to test code with code to statements.
+
+10
+00:00:53,000 --> 00:00:55,000
+But in Java we have labels.
+
+11
+00:00:55,000 --> 00:01:00,000
+We can use labels to break the loop marked with specific label or to continue another loop.
+
+12
+00:01:01,000 --> 00:01:06,000
+I would say that labels with break statements in Java is more structured form of goto statement.
+
+13
+00:01:07,000 --> 00:01:10,000
+You're already aware that breaks statement breaks only closed loop.
+
+14
+00:01:11,000 --> 00:01:16,000
+But in case you have multiple nested loops, how you can break the main loop labels will help you to
+
+15
+00:01:16,000 --> 00:01:17,000
+do this.
+
+16
+00:01:17,000 --> 00:01:19,000
+Let me show you how you can do this.
+
+17
+00:01:20,000 --> 00:01:22,000
+In this example, we have two loops here.
+
+18
+00:01:22,000 --> 00:01:25,000
+One loop is nested and we have two labels.
+
+19
+00:01:26,000 --> 00:01:29,000
+Label is any invalid went into fire followed by a colon.
+
+20
+00:01:30,000 --> 00:01:32,000
+We have loop one and loop two here.
+
+21
+00:01:33,000 --> 00:01:38,000
+Once we have label block of code, we can use labels as a target of a break and a continuous statement.
+
+22
+00:01:39,000 --> 00:01:45,000
+In this case, if counter in nested loop is less than three, we continue our execution from this block.
+
+23
+00:01:45,000 --> 00:01:47,000
+And this is just an example.
+
+24
+00:01:47,000 --> 00:01:50,000
+In real life, you can continue execution from any block you wish.
+
+25
+00:01:51,000 --> 00:01:57,000
+But in case our counter in nested loop is equal to three or more, we break our main loop.
+
+26
+00:01:57,000 --> 00:01:59,000
+That's one console output.
+
+27
+00:01:59,000 --> 00:02:01,000
+You can see that we managed to print.
+
+28
+00:02:01,000 --> 00:02:07,000
+I counter only once in console and the main loop was broken by the statement.
+
+29
+00:02:08,000 --> 00:02:10,000
+So now you know how to use labels.
+
+30
+00:02:11,000 --> 00:02:17,000
+Let's recap what we have learned in this section about loops we learn how to use for type of loops.
+
+31
+00:02:18,000 --> 00:02:22,000
+We also discussed how we can use nested loops, jam statements and labels.
+
+32
+00:02:23,000 --> 00:02:30,000
+Now, let's review your homework, recommend you read books, chapter about loops, and here's recording
+
+33
+00:02:30,000 --> 00:02:31,000
+exercises for you to practice.
+
+34
+00:02:32,000 --> 00:02:35,000
+What will review solution for these scoring exercises together?
+
diff --git a/09 - Iteration Statements (Loops) in Java/007 Source-code-of-the-example-used-in-the-lesson.url b/09 - Iteration Statements (Loops) in Java/007 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..7cd0b468773c10eebc4178022b97ff9bb29801c6
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/007 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/LabelsDemo.java
\ No newline at end of file
diff --git a/09 - Iteration Statements (Loops) in Java/008 Print digits from new line.html b/09 - Iteration Statements (Loops) in Java/008 Print digits from new line.html
new file mode 100644
index 0000000000000000000000000000000000000000..07e0e4297fb17b3fe94c27b799924af14807c76b
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/008 Print digits from new line.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/09 - Iteration Statements (Loops) in Java/009 Pyramid in console.html b/09 - Iteration Statements (Loops) in Java/009 Pyramid in console.html
new file mode 100644
index 0000000000000000000000000000000000000000..1ff0aca7ae32ff44eea31aa0a0f41c3fa862ac3f
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/009 Pyramid in console.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/09 - Iteration Statements (Loops) in Java/010 Print matrix to console.html b/09 - Iteration Statements (Loops) in Java/010 Print matrix to console.html
new file mode 100644
index 0000000000000000000000000000000000000000..e0f787211e98c9d19d2c9528c8b5d5c24d787ea7
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/010 Print matrix to console.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/09 - Iteration Statements (Loops) in Java/011 Homework review Iteration Statements (Loops)_en.srt b/09 - Iteration Statements (Loops) in Java/011 Homework review Iteration Statements (Loops)_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..442fd58d1cfee4d14cc1b8f5606c592aca0c137a
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/011 Homework review Iteration Statements (Loops)_en.srt
@@ -0,0 +1,76 @@
+1
+00:00:05,000 --> 00:00:09,000
+In this, we will review solutions for cutting exercises to practice right in.
+
+2
+00:00:10,000 --> 00:00:15,000
+You had three coding exercises I will share with you links to the source code of the solution.
+
+3
+00:00:15,000 --> 00:00:19,000
+Here is a solution for printing digits from number in new line.
+
+4
+00:00:19,000 --> 00:00:22,000
+I just read string from console and iterating over.
+
+5
+00:00:22,000 --> 00:00:25,000
+Shahara, let me run it.
+
+6
+00:00:25,000 --> 00:00:27,000
+I enter a random number.
+
+7
+00:00:29,000 --> 00:00:30,000
+And here's the result.
+
+8
+00:00:31,000 --> 00:00:35,000
+Here is a solution on the second task was creating of Pyramid in.
+
+9
+00:00:36,000 --> 00:00:39,000
+You need to use nested loops here to implement this task.
+
+10
+00:00:39,000 --> 00:00:45,000
+I saw that my students solve this task in different ways, but in my opinion, this solution is the
+
+11
+00:00:45,000 --> 00:00:47,000
+most readable and easy to understand.
+
+12
+00:00:47,000 --> 00:00:48,000
+Let me run this program.
+
+13
+00:00:49,000 --> 00:00:51,000
+I said height of the pyramid to five.
+
+14
+00:00:52,000 --> 00:00:53,000
+And here's the result in Arkansas.
+
+15
+00:00:55,000 --> 00:01:01,000
+And here is a solution of Perinton Matrix to console again, we need to use nested loops to solve the
+
+16
+00:01:01,000 --> 00:01:01,000
+task.
+
+17
+00:01:02,000 --> 00:01:04,000
+Let me run the program and here it is.
+
+18
+00:01:05,000 --> 00:01:13,000
+Let's go take a look at the source code, ran it on your computer, try to understand it and ask questions
+
+19
+00:01:13,000 --> 00:01:14,000
+or clarifications and comments.
+
diff --git a/09 - Iteration Statements (Loops) in Java/011 Solution-Digits-from-new-line.url b/09 - Iteration Statements (Loops) in Java/011 Solution-Digits-from-new-line.url
new file mode 100644
index 0000000000000000000000000000000000000000..d9e5a454a9b4a646c4c4cecef81bd563f5d9d8f1
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/011 Solution-Digits-from-new-line.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/hw/NewLineForDigit.java
\ No newline at end of file
diff --git a/09 - Iteration Statements (Loops) in Java/011 Solution-Print-matrix-to-console.url b/09 - Iteration Statements (Loops) in Java/011 Solution-Print-matrix-to-console.url
new file mode 100644
index 0000000000000000000000000000000000000000..b22aa51f32918f32bb2e2b894407f527f1c845a8
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/011 Solution-Print-matrix-to-console.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/hw/PrintMatrixToConsole.java
\ No newline at end of file
diff --git a/09 - Iteration Statements (Loops) in Java/011 Solution-Pyramid-in-console.url b/09 - Iteration Statements (Loops) in Java/011 Solution-Pyramid-in-console.url
new file mode 100644
index 0000000000000000000000000000000000000000..8b0eced5edf7db4e15843e287ec1853c93548ebd
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/011 Solution-Pyramid-in-console.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/hw/PyramidInConsole.java
\ No newline at end of file
diff --git a/09 - Iteration Statements (Loops) in Java/012 Quiz Iteration Statements (Loops) in Java - Check yourself.html b/09 - Iteration Statements (Loops) in Java/012 Quiz Iteration Statements (Loops) in Java - Check yourself.html
new file mode 100644
index 0000000000000000000000000000000000000000..660ff71b9f282c552612e04d1d2a1606e99b8b4a
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/012 Quiz Iteration Statements (Loops) in Java - Check yourself.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Quiz Iteration Statements (Loops) in Java - Check yourself
+
+
+
+
+
+
+
Quiz Iteration Statements (Loops) in Java - Check yourself
+
Quiz Link: https://forms.gle/U76a3iUHtrETJrza7
The quiz doesn’t require you to log in or submit any personal information. Your data privacy is my priority.
The Quiz covers content from the following lessons:
Quiz Instructions:
This quiz is designed to help you check your understanding of the content from the previous lessons. All questions are based only on material covered in the lessons you've already watched, so there’s no need to worry about unfamiliar topics.
Each question has one correct answer. Select the best answer and click "Submit" when you're ready.
After submitting, you'll see your score. For each question, you earn 1 point.
Click "View Results" to see the explanations for each correct answer. Reviewing these explanations can help reinforce your understanding.
If you score below 70%, I recommend revisiting the previous lessons. However, if the explanations make sense and you’re confident in your understanding, feel free to move on.
If any explanations are unclear, please don’t hesitate to post questions in the Q&A section—I’m here to help!
+
+
+
+
diff --git a/09 - Iteration Statements (Loops) in Java/external-links.txt b/09 - Iteration Statements (Loops) in Java/external-links.txt
new file mode 100644
index 0000000000000000000000000000000000000000..015953b92014c9219c41ddf50197426268e94544
--- /dev/null
+++ b/09 - Iteration Statements (Loops) in Java/external-links.txt
@@ -0,0 +1,33 @@
+
+001 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/WhileLoopDemo.java
+
+002 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/DoWhileLoopDemo.java
+
+003 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/ForWithConditionLoopDemo.java
+
+004 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/ForeachLoopDemo.java
+
+005 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/NestedLoopsDemo.java
+
+006 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/JumpStatementsDemo.java
+
+007 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/LabelsDemo.java
+
+007 Homework
+https://docs.google.com/document/d/1MAiinUw3l7JpYFPDH2X1sBbDqTYrbHbGXwSCL2o0N2g/edit?usp=sharing
+
+011 Solution-Digits-from-new-line
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/hw/NewLineForDigit.java
+
+011 Solution-Pyramid-in-console
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/hw/PyramidInConsole.java
+
+011 Solution-Print-matrix-to-console
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/controlstatements/loops/hw/PrintMatrixToConsole.java
diff --git a/10 - Methods in Java/001 Methods in Java Overview_en.srt b/10 - Methods in Java/001 Methods in Java Overview_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..6330eef977fa72a396f4e2d184371689f2ad3912
--- /dev/null
+++ b/10 - Methods in Java/001 Methods in Java Overview_en.srt
@@ -0,0 +1,300 @@
+1
+00:00:00,000 --> 00:00:01,000
+Hello team!
+
+2
+00:00:01,000 --> 00:00:04,000
+In this section we will learn with you more about methods in Java.
+
+3
+00:00:04,000 --> 00:00:09,000
+We are going to have multiple lessons in this section from which you will learn what is method and what
+
+4
+00:00:09,000 --> 00:00:13,000
+is method signature, how to declare methods and how to use them.
+
+5
+00:00:13,000 --> 00:00:16,000
+You will understand how methods can return values.
+
+6
+00:00:16,000 --> 00:00:20,000
+I will explain you how data is passed in Java by value and not by reference.
+
+7
+00:00:20,000 --> 00:00:24,000
+How to write recursive methods and what are variable length arguments?
+
+8
+00:00:25,000 --> 00:00:26,000
+Let's start.
+
+9
+00:00:26,000 --> 00:00:27,000
+What is method?
+
+10
+00:00:28,000 --> 00:00:33,000
+A method is a block of code which is referred to by name, and can be called at any point in your program
+
+11
+00:00:33,000 --> 00:00:35,000
+simply with the methods name.
+
+12
+00:00:36,000 --> 00:00:40,000
+Think of a method as a chunk of code, which can be performed on the request.
+
+13
+00:00:40,000 --> 00:00:45,000
+When during the program execution method call is performed, the program proceed execution from that
+
+14
+00:00:45,000 --> 00:00:51,000
+method and when method is finished, execution returns to the line of code in your program from where
+
+15
+00:00:51,000 --> 00:00:52,000
+method was called.
+
+16
+00:00:53,000 --> 00:00:55,000
+Let's write method together.
+
+17
+00:00:55,000 --> 00:00:58,000
+Each method has access modifier.
+
+18
+00:00:58,000 --> 00:01:01,000
+We will learn them during the object oriented programming topic.
+
+19
+00:01:02,000 --> 00:01:03,000
+Let's write private.
+
+20
+00:01:03,000 --> 00:01:09,000
+As of now, this means that we can access this method only in scope of this class.
+
+21
+00:01:10,000 --> 00:01:12,000
+After that, let's write static.
+
+22
+00:01:12,000 --> 00:01:18,000
+Static keyword means that this method is connected not with instances of this class, but with class
+
+23
+00:01:18,000 --> 00:01:19,000
+itself.
+
+24
+00:01:19,000 --> 00:01:24,000
+We'll have separate lessons where we will take a look at what a static and non-static methods.
+
+25
+00:01:24,000 --> 00:01:26,000
+While we don't know OOP.
+
+26
+00:01:26,000 --> 00:01:28,000
+Let's create static methods.
+
+27
+00:01:29,000 --> 00:01:31,000
+Here we specify method return type.
+
+28
+00:01:31,000 --> 00:01:34,000
+Each method can return some value after it finished.
+
+29
+00:01:35,000 --> 00:01:40,000
+The result of the method execution can be assigned to variable of the same type as return type.
+
+30
+00:01:40,000 --> 00:01:42,000
+And here is method name.
+
+31
+00:01:42,000 --> 00:01:48,000
+Method names are usually verbs started with lowercase letter and written in camel case like this one,
+
+32
+00:01:48,000 --> 00:01:49,000
+for example.
+
+33
+00:01:50,000 --> 00:01:52,000
+It is very important how you name your methods.
+
+34
+00:01:53,000 --> 00:01:55,000
+For example, guess what does this method do?
+
+35
+00:01:56,000 --> 00:01:58,000
+It is straight and clear what this method does.
+
+36
+00:01:58,000 --> 00:02:02,000
+You can save a lot of time for your colleagues and a lot of money for your company.
+
+37
+00:02:02,000 --> 00:02:06,000
+Who pays for time of your colleagues if you will write clean code?
+
+38
+00:02:07,000 --> 00:02:13,000
+Understanding of code which was written not by you can take up to 50% of time dedicated for development.
+
+39
+00:02:14,000 --> 00:02:19,000
+That's why in this and in future lessons, I will put stress on clean code design.
+
+40
+00:02:19,000 --> 00:02:24,000
+Because clean code is something that you can't learn in one day after you learned programming.
+
+41
+00:02:24,000 --> 00:02:27,000
+It is something that you should learn constantly.
+
+42
+00:02:28,000 --> 00:02:31,000
+After we wrote Methodname, we need to specify method parameters.
+
+43
+00:02:31,000 --> 00:02:37,000
+Here we declare that this method can work with two integers, and int values can be passed as arguments
+
+44
+00:02:37,000 --> 00:02:38,000
+to this method.
+
+45
+00:02:39,000 --> 00:02:43,000
+Method name and method parameters together is called method signature.
+
+46
+00:02:44,000 --> 00:02:47,000
+Why return type or access modifier is not part of method signature?
+
+47
+00:02:48,000 --> 00:02:53,000
+The reason for this emphasis on just the method name and parameter list is because of overloading.
+
+48
+00:02:54,000 --> 00:02:55,000
+What is overloading?
+
+49
+00:02:56,000 --> 00:03:02,000
+Overloading it is the ability to write methods that have the same name but accept different arguments.
+
+50
+00:03:02,000 --> 00:03:08,000
+The Java compiler is able to discern the difference between the methods through their method signatures.
+
+51
+00:03:08,000 --> 00:03:12,000
+For example, we have method sum which can sum two arguments.
+
+52
+00:03:12,000 --> 00:03:17,000
+This method can sum two integers and this method can sum to doubles.
+
+53
+00:03:17,000 --> 00:03:23,000
+We can say that method sum is overloaded because we have two methods with the same name, but with different
+
+54
+00:03:23,000 --> 00:03:24,000
+signatures.
+
+55
+00:03:24,000 --> 00:03:27,000
+After we declared parameters, we should put braces.
+
+56
+00:03:27,000 --> 00:03:32,000
+This will be our method body which will be executed each time we will call method.
+
+57
+00:03:32,000 --> 00:03:36,000
+If method has return type, we should return some value from the method.
+
+58
+00:03:36,000 --> 00:03:42,000
+To return value from the method, we need to write return keyword and specify either variable name or
+
+59
+00:03:42,000 --> 00:03:47,000
+expression which has compatible type with the one specified in method declaration.
+
+60
+00:03:47,000 --> 00:03:50,000
+It can be that method returns nothing.
+
+61
+00:03:50,000 --> 00:03:54,000
+For example, here are methods which just prints values to console.
+
+62
+00:03:54,000 --> 00:03:58,000
+They should return nothing because they just print values to console.
+
+63
+00:03:59,000 --> 00:04:03,000
+In this case you should specify void as return type like this.
+
+64
+00:04:03,000 --> 00:04:10,000
+And here you can find examples of the method invocations I call method some and it returns value.
+
+65
+00:04:10,000 --> 00:04:15,000
+So I can initialize this int variable with the value which was returned from this method.
+
+66
+00:04:15,000 --> 00:04:17,000
+Is it clear?
+
+67
+00:04:17,000 --> 00:04:22,000
+I can call method and can pass to it the result of execution of another method like this.
+
+68
+00:04:23,000 --> 00:04:30,000
+That means that this method will be executed first, and after that this method will be executed with
+
+69
+00:04:30,000 --> 00:04:32,000
+value, which was returned from some method.
+
+70
+00:04:33,000 --> 00:04:38,000
+You can find that printer console is also overloaded method which works with different types string,
+
+71
+00:04:38,000 --> 00:04:40,000
+double and int.
+
+72
+00:04:40,000 --> 00:04:41,000
+That's all.
+
+73
+00:04:41,000 --> 00:04:43,000
+Thanks a lot for your attention.
+
+74
+00:04:43,000 --> 00:04:45,000
+See you in the next lesson.
+
+75
+00:04:45,000 --> 00:04:46,000
+Us.
+
diff --git a/10 - Methods in Java/001 Source-code-of-the-example-used-in-the-lesson.url b/10 - Methods in Java/001 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..f4e3b1e0e3a2db295e2cc0810fa113ef75d8ac0d
--- /dev/null
+++ b/10 - Methods in Java/001 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/methods/MethodsDemo.java
\ No newline at end of file
diff --git a/10 - Methods in Java/002 Parameter Passing Mechanism in Java_en.srt b/10 - Methods in Java/002 Parameter Passing Mechanism in Java_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..2c115b3e6fecd19520f774b0579a45a6bbdbe55e
--- /dev/null
+++ b/10 - Methods in Java/002 Parameter Passing Mechanism in Java_en.srt
@@ -0,0 +1,348 @@
+1
+00:00:00,000 --> 00:00:01,000
+Hello team!
+
+2
+00:00:01,000 --> 00:00:05,000
+In this lesson we will discuss with you a very important topic which even some more experienced software
+
+3
+00:00:05,000 --> 00:00:08,000
+engineers can't understand.
+
+4
+00:00:08,000 --> 00:00:12,000
+But I will explain you this topic with simple examples and you will remember it easily.
+
+5
+00:00:13,000 --> 00:00:18,000
+Today we will talk with you how data is passed to the method in Java by value or by reference.
+
+6
+00:00:18,000 --> 00:00:18,000
+Why?
+
+7
+00:00:18,000 --> 00:00:23,000
+This question is important because in different programming languages, you can decide whether you want
+
+8
+00:00:23,000 --> 00:00:26,000
+to pass value to the method by value or by reference.
+
+9
+00:00:27,000 --> 00:00:33,000
+This might affect the state of the data which was supposed to be modified after specific method call.
+
+10
+00:00:33,000 --> 00:00:38,000
+So you already understand that we can pass arguments by value and by reference.
+
+11
+00:00:38,000 --> 00:00:40,000
+What does pass by value mean?
+
+12
+00:00:40,000 --> 00:00:46,000
+Passing by value means that the value of the method parameter is copied into another location of your
+
+13
+00:00:46,000 --> 00:00:52,000
+memory, and when accessing or modifying the variable within your function, only the copy is accessed
+
+14
+00:00:52,000 --> 00:00:55,000
+or modified and the original value is left untouched.
+
+15
+00:00:56,000 --> 00:01:01,000
+Imagine empty cup and specific function which you want to use to fill this cup with coffee.
+
+16
+00:01:01,000 --> 00:01:08,000
+In case we pass by value, we copy this cup inside the function and all changes with this cup affects
+
+17
+00:01:08,000 --> 00:01:10,000
+only cup which was copied.
+
+18
+00:01:11,000 --> 00:01:13,000
+Then what does pass by reference mean?
+
+19
+00:01:14,000 --> 00:01:18,000
+Passing by reference means that the memory address of the variable, or it is better to say a pointer
+
+20
+00:01:18,000 --> 00:01:21,000
+to the memory location is passed to the method.
+
+21
+00:01:22,000 --> 00:01:26,000
+In case we pass by reference, we pass the address where this cup is located.
+
+22
+00:01:26,000 --> 00:01:31,000
+And when I fill the cup inside the function, I also fill the original cup.
+
+23
+00:01:31,000 --> 00:01:34,000
+And now please remember the rule in Java.
+
+24
+00:01:34,000 --> 00:01:38,000
+Primitive and reference types of data are passed by value.
+
+25
+00:01:38,000 --> 00:01:41,000
+That is the only right answer on the interview.
+
+26
+00:01:41,000 --> 00:01:46,000
+You can read in internet that Java objects are passed by reference, and primitive types are passed
+
+27
+00:01:46,000 --> 00:01:46,000
+by values.
+
+28
+00:01:46,000 --> 00:01:49,000
+That is not true on the simple examples.
+
+29
+00:01:49,000 --> 00:01:50,000
+I will prove you this.
+
+30
+00:01:51,000 --> 00:01:54,000
+Here I have int value which is equal to ten.
+
+31
+00:01:54,000 --> 00:01:57,000
+I have method which takes int as a parameter inside it.
+
+32
+00:01:57,000 --> 00:01:59,000
+We want to increase I by 100.
+
+33
+00:02:00,000 --> 00:02:02,000
+What value of I will be in console here?
+
+34
+00:02:02,000 --> 00:02:05,000
+After the method call, the value will be ten.
+
+35
+00:02:05,000 --> 00:02:06,000
+Why?
+
+36
+00:02:06,000 --> 00:02:09,000
+Because in Java everything is passed by value.
+
+37
+00:02:09,000 --> 00:02:16,000
+Here when I called method, the copy of I variable was created and when I increased I by 100 value,
+
+38
+00:02:16,000 --> 00:02:20,000
+the result was assigned to the local I variable, but not to this one.
+
+39
+00:02:21,000 --> 00:02:22,000
+These two are different.
+
+40
+00:02:23,000 --> 00:02:28,000
+They remember in the lesson when we discussed Java memory model, I told you about stack memory.
+
+41
+00:02:28,000 --> 00:02:32,000
+When this method is called copy of the I was created in stack.
+
+42
+00:02:32,000 --> 00:02:35,000
+So in this case how I can change the value of I.
+
+43
+00:02:35,000 --> 00:02:39,000
+Here the only way to do this in Java is to use return statement.
+
+44
+00:02:39,000 --> 00:02:43,000
+Your message should return some value which will be assigned to the variable.
+
+45
+00:02:43,000 --> 00:02:52,000
+Like in this example I call method change int, I add 100 and I return the value from this method which
+
+46
+00:02:52,000 --> 00:02:53,000
+is assigned to I variable.
+
+47
+00:02:53,000 --> 00:02:54,000
+Here.
+
+48
+00:02:56,000 --> 00:02:57,000
+Let's move on.
+
+49
+00:02:58,000 --> 00:03:03,000
+Now I have array of ints and you remember that arrays are reference type of data.
+
+50
+00:03:03,000 --> 00:03:07,000
+I have method which has some logic inside to change state of the array.
+
+51
+00:03:08,000 --> 00:03:14,000
+I want to make second element in this array equal to 200, but not two as in original array.
+
+52
+00:03:14,000 --> 00:03:17,000
+Let me print this array to console after this method call.
+
+53
+00:03:17,000 --> 00:03:20,000
+What do you think will be the second element?
+
+54
+00:03:20,000 --> 00:03:21,000
+2 or 200.
+
+55
+00:03:22,000 --> 00:03:23,000
+And it is 200.
+
+56
+00:03:24,000 --> 00:03:29,000
+You might be wondering how this could happen if in Java we pass everything by value, then modification
+
+57
+00:03:29,000 --> 00:03:33,000
+which we did in the method should not affect original array.
+
+58
+00:03:33,000 --> 00:03:35,000
+Let's understand what has happened here.
+
+59
+00:03:35,000 --> 00:03:39,000
+I call the method and pass reference to the array object.
+
+60
+00:03:39,000 --> 00:03:40,000
+Attention.
+
+61
+00:03:40,000 --> 00:03:47,000
+I pass the reference to the array, but not the array, and copy of the reference is created here.
+
+62
+00:03:47,000 --> 00:03:50,000
+I can get access to the array through the reference.
+
+63
+00:03:50,000 --> 00:03:55,000
+So here I use the reference to get access to the same array as here.
+
+64
+00:03:55,000 --> 00:04:00,000
+These two variables reference to the same array object in the heap memory.
+
+65
+00:04:01,000 --> 00:04:06,000
+Probably now you want to get proofs that this is a copy of reference, but not copy of the array.
+
+66
+00:04:06,000 --> 00:04:09,000
+I have another method with name clear array.
+
+67
+00:04:09,000 --> 00:04:13,000
+It takes an array as a parameter and makes this variable reference to null.
+
+68
+00:04:13,000 --> 00:04:16,000
+Let me call this method with our array.
+
+69
+00:04:16,000 --> 00:04:18,000
+Now I print it to console.
+
+70
+00:04:18,000 --> 00:04:22,000
+What will be printed to console null or values from array?
+
+71
+00:04:22,000 --> 00:04:24,000
+Values from array is on place.
+
+72
+00:04:25,000 --> 00:04:25,000
+Why?
+
+73
+00:04:25,000 --> 00:04:32,000
+Because this is copy of reference and now local method variable which exists only in scope of this method.
+
+74
+00:04:32,000 --> 00:04:33,000
+References to null.
+
+75
+00:04:33,000 --> 00:04:35,000
+No problems at all.
+
+76
+00:04:35,000 --> 00:04:39,000
+This reference still refers to the object on heap memory.
+
+77
+00:04:39,000 --> 00:04:45,000
+And now you can be sure that even when we pass objects in Java to the method, we still pass by value
+
+78
+00:04:45,000 --> 00:04:51,000
+because we pass reference to the object and we pass value of the reference.
+
+79
+00:04:51,000 --> 00:04:55,000
+Hope examples from this lesson help you understand the topic better.
+
+80
+00:04:56,000 --> 00:04:58,000
+Let's recap what we have learned today.
+
+81
+00:04:58,000 --> 00:05:02,000
+Today we learned what does pass by value and pass by reference mean.
+
+82
+00:05:02,000 --> 00:05:06,000
+We also understood that in Java everything is passed by value.
+
+83
+00:05:06,000 --> 00:05:10,000
+On the examples, we saw how primitive and reference types passed by value.
+
+84
+00:05:11,000 --> 00:05:12,000
+That's all for today.
+
+85
+00:05:12,000 --> 00:05:14,000
+Thanks a lot for your attention.
+
+86
+00:05:14,000 --> 00:05:16,000
+See you in the next lesson.
+
+87
+00:05:16,000 --> 00:05:16,000
+Your.
+
diff --git a/10 - Methods in Java/002 Source-code-of-the-example-used-in-the-lesson.url b/10 - Methods in Java/002 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..22b9ba2709545b437483fd469aac8141d3842e2c
--- /dev/null
+++ b/10 - Methods in Java/002 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/methods/PassByValueDemo.java
\ No newline at end of file
diff --git a/10 - Methods in Java/003 Recursive methods_en.srt b/10 - Methods in Java/003 Recursive methods_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..ddb5e73de9b27cabe3a318b44a0ace77e8668173
--- /dev/null
+++ b/10 - Methods in Java/003 Recursive methods_en.srt
@@ -0,0 +1,184 @@
+1
+00:00:00,000 --> 00:00:00,000
+Hello team!
+
+2
+00:00:00,000 --> 00:00:04,000
+In this lesson we will learn what are recursive methods and how to use them.
+
+3
+00:00:04,000 --> 00:00:06,000
+What is recursion?
+
+4
+00:00:06,000 --> 00:00:10,000
+Recursion is a process in which a method calls itself continuously.
+
+5
+00:00:11,000 --> 00:00:15,000
+A method in Java that calls itself is called recursive method.
+
+6
+00:00:15,000 --> 00:00:17,000
+Let's write the easiest recursive method.
+
+7
+00:00:18,000 --> 00:00:24,000
+I have the method which calls itself, and when it calls itself, it calls the same method again.
+
+8
+00:00:24,000 --> 00:00:26,000
+This is recursive method.
+
+9
+00:00:26,000 --> 00:00:27,000
+What is wrong here?
+
+10
+00:00:28,000 --> 00:00:29,000
+Let's run our program.
+
+11
+00:00:31,000 --> 00:00:33,000
+We have stack overflow error.
+
+12
+00:00:33,000 --> 00:00:35,000
+Why this has happened?
+
+13
+00:00:35,000 --> 00:00:40,000
+Because when a recursive call is made, new storage locations for variables are located in the stack
+
+14
+00:00:40,000 --> 00:00:41,000
+memory of the JVM.
+
+15
+00:00:42,000 --> 00:00:46,000
+So each recursive call will add a new frame to the stack.
+
+16
+00:00:46,000 --> 00:00:53,000
+That means we can run out of memory, because information about initial and other method invocations
+
+17
+00:00:53,000 --> 00:00:54,000
+won't be removed from the stack.
+
+18
+00:00:55,000 --> 00:00:58,000
+We need to finish method to release memory in stack.
+
+19
+00:00:58,000 --> 00:01:03,000
+But when we call the same method again and again, it just can't be completed.
+
+20
+00:01:04,000 --> 00:01:07,000
+So here is an important rule which you have to always keep in mind.
+
+21
+00:01:07,000 --> 00:01:12,000
+When you create recursive methods, you should clearly define stop condition.
+
+22
+00:01:12,000 --> 00:01:17,000
+The condition when recursion must be stopped and value should be returned.
+
+23
+00:01:17,000 --> 00:01:20,000
+Let's find factorial of a number.
+
+24
+00:01:20,000 --> 00:01:26,000
+Factorial of a positive integer is a result of multiplication Application of all positive integers less
+
+25
+00:01:26,000 --> 00:01:28,000
+than or equal to original number.
+
+26
+00:01:28,000 --> 00:01:33,000
+We'll write recursive method in case I is not equal to zero.
+
+27
+00:01:33,000 --> 00:01:39,000
+Then we can multiply I by the result of the same method, but with number decreased by one, and when
+
+28
+00:01:39,000 --> 00:01:45,000
+I will be equal to zero, we return one and no recursion here anymore.
+
+29
+00:01:45,000 --> 00:01:47,000
+We broke the chain of recursion calls.
+
+30
+00:01:48,000 --> 00:01:50,000
+Let me comment this method first.
+
+31
+00:01:50,000 --> 00:01:54,000
+Now I can run the program again and you see the result in console.
+
+32
+00:01:54,000 --> 00:01:58,000
+Here we calculated factorial of three and four.
+
+33
+00:01:58,000 --> 00:02:02,000
+Now when you know how recursive method works, let's recap.
+
+34
+00:02:02,000 --> 00:02:04,000
+Pros and cons of recursive methods.
+
+35
+00:02:04,000 --> 00:02:08,000
+Recursive methods usually look clean and easy to understand.
+
+36
+00:02:08,000 --> 00:02:11,000
+Often we can achieve our goal without recursive methods.
+
+37
+00:02:12,000 --> 00:02:17,000
+For example, here is the same method to calculate factorial but without recursion, and you see that
+
+38
+00:02:17,000 --> 00:02:20,000
+it is a bit longer and less clear than recursive one.
+
+39
+00:02:21,000 --> 00:02:27,000
+So clean design is an advantage of recursive methods, but recursive methods have one huge drawback.
+
+40
+00:02:28,000 --> 00:02:33,000
+In case there will be a lot of methods, invocations or stop condition will be written incorrectly.
+
+41
+00:02:33,000 --> 00:02:36,000
+Your program will be stopped because of stack overflow error.
+
+42
+00:02:37,000 --> 00:02:39,000
+Now you know pros and cons of recursive methods.
+
+43
+00:02:40,000 --> 00:02:43,000
+I will share with you coding exercises to write recursive methods.
+
+44
+00:02:44,000 --> 00:02:45,000
+Thanks a lot for your attention.
+
+45
+00:02:45,000 --> 00:02:47,000
+See you in the next lesson.
+
+46
+00:02:48,000 --> 00:02:48,000
+Your.
+
diff --git a/10 - Methods in Java/003 Source-code-of-the-example-used-in-the-lesson.url b/10 - Methods in Java/003 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..24f7a20e3fac245387a5280a2448861fbaa7326a
--- /dev/null
+++ b/10 - Methods in Java/003 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/methods/RecursiveMethodsDemo.java
\ No newline at end of file
diff --git a/10 - Methods in Java/004 Methods-in-Java-Homework.url b/10 - Methods in Java/004 Methods-in-Java-Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..307b228c226b5e2e17c7c4e3cefdd69753d80854
--- /dev/null
+++ b/10 - Methods in Java/004 Methods-in-Java-Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1ojb3UJGOZC14ULGXyrIonSWeBDKbGo5WKsDns4_crgo/edit?usp=sharing
\ No newline at end of file
diff --git a/10 - Methods in Java/004 Source-code-of-the-example-used-in-the-lesson.url b/10 - Methods in Java/004 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..c1ac4585014e7322e88864ac0aa3c82c09870a26
--- /dev/null
+++ b/10 - Methods in Java/004 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/methods/VarargsDemo.java
\ No newline at end of file
diff --git a/10 - Methods in Java/009 Rotate Matrix.html b/10 - Methods in Java/009 Rotate Matrix.html
new file mode 100644
index 0000000000000000000000000000000000000000..46e1259f9fa26d40901cccccd44a8d426c5f13cc
--- /dev/null
+++ b/10 - Methods in Java/009 Rotate Matrix.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/10 - Methods in Java/010 Extend Array.html b/10 - Methods in Java/010 Extend Array.html
new file mode 100644
index 0000000000000000000000000000000000000000..3ac1a2a66dd7744d9d14e5070be07c1c613a995e
--- /dev/null
+++ b/10 - Methods in Java/010 Extend Array.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/10 - Methods in Java/011 Greatest Common Divisor.html b/10 - Methods in Java/011 Greatest Common Divisor.html
new file mode 100644
index 0000000000000000000000000000000000000000..15a2df748a1871dad787a0f6570bf740dc7eb1dc
--- /dev/null
+++ b/10 - Methods in Java/011 Greatest Common Divisor.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/10 - Methods in Java/012 Sum all digits in number.html b/10 - Methods in Java/012 Sum all digits in number.html
new file mode 100644
index 0000000000000000000000000000000000000000..ac230a61b42e4fbc440dcd9e64142520b3d34e8d
--- /dev/null
+++ b/10 - Methods in Java/012 Sum all digits in number.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
+
+
+
+
+