[JAVA] forEach practice (Part 1: Rewrite from forEach statement to forEach method)

4/27: Please point out and correct the description. (for statement-> forEach statement, forEach statement-> forEach method)

Practice with simple processing!

To get used to the forEach method, let's rewrite the processing of the forEach statement.

Before First, the source of the for Each statement.

OtamesiFizzBuzz.java


package oasobi;

import java.util.ArrayList;

/**
 *practice.
 *
 */
public class OtamesiFizzBuzz {

	public static void main(String[] args) {
		OtamesiFizzBuzz2 main = new OtamesiFizzBuzz2();
		main.execute();
	}

	//Run
	public void execute() {
		//Preparation
		ArrayList<Integer> list = new ArrayList<>();
		for(int i = 1 ; i < 16 ; i++) {
            list.add(i);
        }

		//Try turning
		for(int i : list) {
			outputFizzBuzz(i);
        }
	}

	//Outputs Fizz if the argument is divisible by 3, Buzz if it is divisible by 5, and FizzBuzz if it is divisible by both.
	//If neither is divisible"It's neither!"
	private void outputFizzBuzz(int value) {
		if (value%3 == 0 && value%5 == 0) {
			System.out.println(value + ":FizzBuzz");
		} else if (value%3 == 0 && value%5 != 0) {
			System.out.println(value + ":Fizz");
		} else if (value%3 != 0 && value%5 == 0) {
			System.out.println(value + ":Buzz");
		} else {
			System.out.println(value + ":It's neither!");
		}
	}
}

■ Execution result 1: Neither! 2: Neither! 3:Fizz 4: Neither! 5:Buzz 6:Fizz 7: Neither! 8: Neither! 9:Fizz 10:Buzz 11: Neither! 12:Fizz 13: Neither! 14: Neither! 15:FizzBuzz

After Let's rewrite this with the forEach method.

OtamesiFizzBuzz2.java


package oasobi;

import java.util.ArrayList;

/**
 *Practice # 2.
 *
 */
public class OtamesiFizzBuzz2 {


	public static void main(String[] args) {
		OtamesiFizzBuzz2 main = new OtamesiFizzBuzz2();
		main.execute();
	}

	//Run
	public void execute() {
		//Preparation
		ArrayList<Integer> list = new ArrayList<>();
		for(int i = 1 ; i < 16 ; i++) {
            list.add(i);
        }

		//Try turning
		list.forEach(this::outputFizzBuzz);
	}

	//Outputs Fizz if the argument is divisible by 3, Buzz if it is divisible by 5, and FizzBuzz if it is divisible by both.
	//If neither is divisible"It's neither!"
	private void outputFizzBuzz(int value) {
		if (value%3 == 0 && value%5 == 0) {
			System.out.println(value + ":FizzBuzz");
		} else if (value%3 == 0 && value%5 != 0) {
			System.out.println(value + ":Fizz");
		} else if (value%3 != 0 && value%5 == 0) {
			System.out.println(value + ":Buzz");
		} else {
			System.out.println(value + ":It's neither!");
		}
	}
}

■ Execution result 1: Neither! 2: Neither! 3:Fizz 4: Neither! 5:Buzz 6:Fizz 7: Neither! 8: Neither! 9:Fizz 10:Buzz 11: Neither! 12:Fizz 13: Neither! 14: Neither! 15:FizzBuzz

I got the same result.

I feel like I somehow understood that I passed a method that takes one argument to the forEach method. A little refreshing.

Recommended Posts

forEach practice (Part 1: Rewrite from forEach statement to forEach method)
Introduction to swift practice output Chapter 5 Part 2
[Ruby] From the basics to the inject method
to rewrite unless
java practice part 1
[Java] forEach method
[Practice] Map method
How to output standard from an array with forEach