for 문 종류 및 방법

성난호랑이 시니철 ㅣ 2024. 2. 12. 23:46

java 반복문은 for, while 있습니다.

 

저는 주로 for문을 많이 사용하고있어서 이번 글에서는 for 설명하겠습니다.

 

for 문에 사용할 데이터를 List에 넣어 줍니다.

List<String> s_list = new ArrayList<>();
s_list.add("1");
s_list.add("2");
s_list.add("3");

s_list 에 있는 데이터를 for 문으로 출력합니다.

 

1. 기본 for

for(초기화;조건식;증감식){
	//조건식이 true 일때 실행
}
for(int i = 0; i < s_list.size(); i++){
	System.out.println("기본 for 문 : "+s_list.get(i));
}

초기화  : int i = 0

조건식  : i < s_list.size()

증감식  : i ++ 

 

결과

기본 for 문 : 1
기본 for 문 : 2
기본 for 문 : 3

 

기본 for 에서 s_list.size() 를 변수로 따로 빼는게 속도? 서버 부하에 좋습니다.

기본 for를 사용할때는 아래 for문을 주로 사용합니다.

int list_size = s_list.size();
for(int i = 0; i < list_size; i++){
	System.out.println("기본 for 문 : "+s_list.get(i));
}

 

2. for each

 - 찾아보니 향상된 for 문이라고합니다.

for(변수타입 변수이름 : loop변수){
   // loop 변수가 끝날때까지 반복
}

변수타입 : entity, String, int 등 변수가 가능

변수이름 : 변수이름

loop변수 : 반복해서 값을 찾아야하는 값 ( 자료형 배열,ArrayList 등만 가능 )

// for each
for(String st : s_list){
	System.out.println("for each 문 : "+st);
}

 

결과

for each 문 : 1
for each 문 : 2
for each 문 : 3

 

3. for each 

 

forEach()는 Java8에 추가 되었습니다.

Consumer 함수형 인터페이스를 전달받아 내부적으로 accept라는 메서드를 싱행하도록 되어 있습니다.

 

Consumer<String> lambda = str -> System.out.println("lambda : "+ str);
s_list.forEach(lambda);

 

forEach의 매개변수타입 Consumer 이용하여 만든 반복문

 

결과

lambda : 1
lambda : 2
lambda : 3

 

- 좀더 간단하게 lambda 사용하기

s_list.forEach(str -> System.out.println("for each 문 : "+str));

 

결과

for each 문 : 1
for each 문 : 2
for each 문 : 3

 

총 4가지 방법의  반복문이 있습니다.

 

저는 주로 2번 for문을 사용합니다.

 

하지만 장단점이 있어서 최근나온 forEach는 좀더 공부를 해보고 프로젝트에 적용해봐야 할거같습니다.

 

1, 2, 3 장단점

1번.

단점

 - for 값을 가져올때 소스가 길어 지저분하다

장점

 - 빠르다

 - 원하는 위치 원하는 값을 가져와서 사용할수있다.

 

2번.

단점

 - index 값을 찾을떄 따로 변수를 선언해서 해야한다

 - 기본 for문보다 속도가 느리다

 - 중간부터 실행이 불가능하다

장점

 - 소스가 깔끔하다? 개인 생각입니다.

 

3번.

아직 잘모르겠습니다. 좀더 사용해보고 장단점을 쓰도록하겠습니다.

 

- 원하는 값을 빼서 원하는 곳에 넣기 힘들다?

- 간단한 반복문은 기본 for보다 부하가 크다

 

'공부 > JAVA' 카테고리의 다른 글

JAVA 문자열 뒤집기  (0) 2024.03.04
String 기능 모음  (0) 2024.03.04
Java AES-256 양방향 암호화  (0) 2024.02.16
java 특정 날짜 요일 구하기, 날짜 하루 더하기 뺴기  (2) 2017.01.11
CSV 파일 읽어오기  (0) 2015.12.17