Loops
자바의 반복문에 대해 정리하였습니다.
< Introduction to Loops >
To repeat the same block of code until some condition is met.
We employ loops to easily scale programs - saving time and minimizing mistakes.
- Writing the same code over and over is time-consuming.
- Having less code means having less to debug.
< While loop >
< Syntax >
If the condition evaluates to true, the code block will run.while (condition) { // code block }
If the condition evaluates to false, the code block will stop.
Example)
int number = 1;
while (number <=6) {
System.out.println(number);
number += 1;
}
// 1 2 3 4 5 6
< Incrementing While Loops >
To avoid Infinity Loops using counter.
- A counter (a.k.a iterator) is a variable used in the conditional logic of the loop and (usually) incremented in value during each iteration through the code.
Example)
int wishes = 0;
while (wishes < 3) {
System.out.println("Wish granted.");
wishes++;
}
// Wish granted.
// Wish granted.
// Wish granted.
: Counter is wishes variable
< For Loops >
< Syntax >
A for loop is made up of the following three parts, each separated by a semicolon ;for (int control-variable = 0; control-variable < 5; control-variable++) { // code block }
: The for loop will continue to execute until boolean expression is false
- The initialization of the loop control variable.
=> int control-variable = 0- A boolean expression.
=> control-variable < 5;- An increment or decrement statement.(On each iteration after initialization)
=> control-variable++
Example)
int[] secretCode = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int i = 0; i < secretCode.length; i++) {
// Increase value of element value by 1
secretCode[i] += 1;
}
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
< break and continue >
To exit a loop before it finishes or want to skip one of the iterations, we can use the break and
continue keywords.
1. The break keyword is used to exit, or break, a loop.
: Once break is executed, the loop will stop iterating.
for (int i = 0; i < 10; i++) {
System.out.println(i);
if (i == 4) {
break;
}
}
// 1
// 2
// 3
// 4
2. The continue keyword is used inside of a loop if we want to skip an iteration.
: Once continue is executed, the current loop iteration will immediately end, and the next iteration will begin.
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 == 0) {
continue;
}
System.out.println(numbers[i]);
}
// 1
// 3
// 5
+. Loops can exist all throughout our code - including inside a method
If the return keyword was executed inside a loop contained in a method, then the loop iteration would be stopped and the method/constructor would be exited.
public static boolean checkForJacket(String[] lst) {
for (int i = 0; i < lst.length; i++) {
System.out.println(lst[i]);
if (lst[i] == "jacket") {
return true;
}
}
return false;
}
public static void main(String[] args) {
String[] suitcase = {"shirt", "jacket", "pants", "socks"};
System.out.println(checkForJacket(suitcase));
}
// shirt
// jacket
// true
< For-Each Loops >
To directly loop through each item in a list of items (like an array or ArrayList) and perform some action with each item.
For loop's Short Version!
< Syntax >
for (DataType element : list) { // code block }
- DataType : element's data type.
- element : list's element's name.(anything you want)
- list : list(like array or ArrayList) to iterate.
Example)
// For
for (int inventoryItem = 0; inventoryItem < inventoryItems.length; inventoryItem++) {
System.out.println(inventoryItems[inventoryItem]);
}
// For-Each
for (String inventoryItem : inventoryItems) {
System.out.println(inventoryItem);
}
< Removing Elements During Loop >
When an element is removed from an ArrayList, all the items that appear after the removed element will have their index value shift by negative one — it’s like all elements shifted to the left. We’ll have to be very careful with how we use our counter variable to avoid skipping elements.
< 1. Removing An Element Using while >
When using a while loop, should not increment the counter variable.
We don’t need to increase the counter because all of the other elements have now shifted to the left.
int i = 0;
while (i < lst.size()) {
// if value is odd, remove value
if (lst.get(i) % 2 != 0){
lst.remove(i);
} else {
// if value is even, increment counter
i++;
}
}
< 2. Removing An Element Using for >
When using a for loop, we can’t avoid increasing control variable.
So we should decrease the control variable whenever we remove an item.
for (int i = 0; i < lst.size(); i++) {
if (lst.get(i) == "value to remove"){
// remove value from ArrayList
lst.remove(lst.get(i));
// Decrease loop control variable by 1
i--;
}
}