마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

코드 분석중인데 for문 관련해서 해석 좀 부탁드립니다

0 추천

 public void cleanCache() { 
  for(Bitmap bitmapThumbnail : this._cache.values()) {
   if(bitmapThumbnail != null) {
    bitmapThumbnail.recycle();
   }
  }
 }

안드로이드 어플 코드 분석중에 자바 for문이 나왔는데요..

여태 제가 배운

for문은 i=0, i<10, i++ 형식으로 이뤄졌었는데..

이런 형태는 처음보네요..

콜론으로 표시된   for(Bitmap bitmapThumbnail : this._cache.values()) {

이 문장 어떻게 해석해야하나요?

 

에로곰쟁이 (240 포인트) 님이 2013년 3월 20일 질문

2개의 답변

+1 추천
 
채택된 답변

bitmapThumbnail을 가져오는데 cache.values 만큼 가져오라는 겁니다.

 

 

for (int ele : locationEle) {}

 
int ele : 배열에 들어있는 한 원소의 값을 저장해 둘 변수를 선언. 매번 순환문이 반복될때마다 이변수(ele) 에 배열 원소의 값이 대됩니다. 이 순환문은 더이상 남아 있는 원소가 없게 될때 까지 또는 break가 실행될 때까지 반복됩니다.
 
:  --> 콜론(:)은 왼쪽에 있는 변수에 오른쪽에 있는 것의 각원소의 값이 대입된다는 것을 뜻합니다. 즉 locationEle 에 들어있는 모든 int 값에 대해서 순환문을 돌린다고 보면 되죠.
 
locationEle : 이 for  문에서 순환문을 돌릴 대상이 되는 배열, 매번 순환문이 반복될때마다 배열에 들어있는 다음 원소가  "ele"이라는 변수에 대입 됩니다.
 
 
for 순환문의 종류
 
for (int i=0 ; i<10 ; i++){
   //여기있는 코드를 열번 반복
}
이런 형식의 for 구절로도 어떤 순환문이 든 돌릴수 있습니다. 하지만 자바 5.0부터 배열 (또는 기타 컬렉션)의 원소들에 대해서 반복작업을 하고 싶을때 쓸수 있는 '향상된 for 순환문' 이 등장했습니다. 물론 배열의 모든 원소에 대해서 반복 작업을 할때 기존 for 순환문을 써도 되지만 향상된 for 순환문을 쓰면 더 쉽게 작성이 가능하다는 것입니다.
맛있다얍얍 (1,130 포인트) 님이 2013년 3월 20일 답변
에로곰쟁이님이 2013년 3월 20일 채택됨
자세한 설명 감사드립니다!
+1 추천
_cache.value() 에 Bitmap 배열이 리턴될겁니다.

일반 for문과 비슷해요

풀어서 쓰자면

for(int i = 0; i < _cache.values().size(); i++){

  Bitmap bitmapThumbnail = _cache.value().get(i);

}

의 느낌입니다.
중견수 (5,600 포인트) 님이 2013년 3월 20일 답변
이제야 이해가 되네요 ㅜ
위 방법이 코딩하기엔 좀 더 쉬운 방법이었군요~ 답변 감사합니다!
...