2012-05-10 5 views
1

안녕하세요, 루프에서 후속 값을 반환해야하는 메서드를 사용하고 있습니다. 그러나 return 문은 루프 외부에서만 작동합니다. 루프 내에서 값을 반환하려면 어떻게해야합니까?루프에서 값을 반환하는 방법은 무엇입니까?

for (int i = 0; i < list.size(); i++) 
{ 
    Iterator <String> it1 = //getting some list values 
    double min = Double.parseDouble (it1.next()); 
    double temp1 = 0; 
    while (it1.hasNext()) { 
     if (it != null) 
     { 
      temp1 = Double.parseDouble (it1.next()); 
     }         
     if (temp1 < min) 
      min = temp1; 
    } 
} 
return min; 

내가 루프 내에서 최소 값을 반환 할 : 여기

는 코드입니다. 그게 어떻게 가능해? 제발 도와주세요 .. 미리 감사합니다 ..

+3

시도해 보셨습니까? – Jeffrey

+0

최소값을 찾으려면 전체 목록을 반복해야하므로 루프 내에서 반환 할 수 없습니다. 더 좋은 방법을 원한다면, Collections.sort (myList )를 수행하고 최소값을 얻으려면 (Comparator에 따라 첫 번째 요소 또는 마지막 요소) – Ozzy

+1

자신의 개체에 대한 Comparator를 직접 만들어야합니다. 반복자는 null을 반환하지만 hasNext?라고 말합니다. –

답변

0

A) 루프에서 당신 return합니다.

B) "구조화 된"방법은 변수를 루프보다 먼저 가짜/기본값으로 설정 한 다음 break을 실행하기 전에 루프 내에서 유효한 값으로 설정하는 것입니다. 루프 종료시 값을 리턴하십시오.

+0

답장을 보내 주셔서 감사합니다. –

+0

몇 가지 예를 들려 줄 수 있습니까? 제발 .. 나는 그것을 얻을 수 없다. –

+0

나는 시험해 보았다. 그러나 여전히 오류를 보여줍니다. 루프 외부에서 변수를 설정하고 for 루프 내에서 리턴합니다. 그러나 오류를 보여줍니다 .. –

4

루프 외부에서 반환하는 것과 같은 방식으로 수행됩니다. 예외가 발생하지 않는 예외를 제외한 모든 상황에서 메소드가 값을 반환하는지 확인해야합니다. 다음은 for 루프 내에서 반환되는 코드입니다.

for(int i=0;i<list.size();i++) 
{ 
    Iterator<String> it1 = //getting some list values 
    double min = Double.parseDouble(it1.next()); 
    double temp1=0; 
    while(it1.hasNext()){ 
     if(it!=null) 
     { 
      temp1 = Double.parseDouble(it1.next()); 
     }         
     if(temp1 < min) 
      min = temp1; 
    } 
    return min; 
} 
return 0; 

이 기능은 사용자의 기능을 올바르게 구현하지 못했지만 루프 내에서의 반환이 가능하다는 것을 보여줍니다. 또한 for 루프에 대한 필요성을 완전히 없애지 만 앞에서 말했듯이이 코드는 루프 내에서의 반환이 가능하다는 것을 보여주는 예제 일뿐입니다.

+1

이 경우'for' 루프는 필요하지 않습니다. 항상 첫 번째 값으로 만 실행되며 한 번만 실행됩니다. – nnhthuan

+0

알아요. 루프 내에서 돌아갈 수 있다는 것을 보여주었습니다. 나는 그의 방법을 고쳐 쓰는 것을 고심하지 않았다. – Vulcan

+0

Okie. 알았다. 실제로, 나는 논리가 좋지 않기 때문에 그가 왜 그것을 필요로하는지 모른다. 나는 그가 여기에서 묻기 전에 이것에 대해 연구하지 않았다고 생각한다. – nnhthuan

관련 문제