2014-12-30 3 views
0

아래 예제에서 break 문을 처리하는 데 문제가 있습니다. 국가 = 미국의 경우 somearray는 길이가 1입니다. "DE"의 경우, 길이는 하나 이상입니다. 하지만 주어진 프로그램은 break 문이 첫 번째 행을 처리 한 후에 꺼내기 위해 사용 되었기 때문에 DE 국가에 둘 이상의 행이 있기 때문에 DE 국가에 대한 제품군이 아닙니다. 이후로 더 나은 방법으로 사용하고 있습니다. = 국가의 같은 논리를 사용 DE뿐만 아니라break 문을 이해하고 기존 코드를 처리하십시오.

 if(country == "US" || country == "DE") 
     { 

      for(int i = 0; i < somearray.length(); i++) 
      { 

       if((payment == "USD")) 
       { 
        if(amount > 0) 
        { 
         //do something 
        } 

        if(balance.is_positive()) 
        { 
         // do something 
        } 

        break; 
       } 
      } 
     } 

참고 :이 실제적인 코드가 .. 그냥 .. 내가 이해 한 바로는

+2

왜 '중단'을 제거 하시겠습니까? –

+0

지불 관련 항목은 무엇입니까? 미국의 나라일까요? 왜냐하면 내가보기에, 당신의 휴식은 지불에 의존하고 somearray이 아닙니다. – Codeek

+0

@ 코덱, 죄송합니다, 놓친 것, – soon

답변

1
if(country = "US" || country = "DE") 
     { 

      for(int i = 0; i < somearray.length(); i++) 
      { 

       if((payment == "USD")) 
       { 
        if(amount > 0) 
        { 
         //do something 
        } 

        if(balance.is_positive()) 
        { 
         // do something 
        } 
        if(somearray.length()==1) // as per Your requirement country **us** has **length 1** ,in this can break the loop 
        {break;} 
       } 
      } 
     } 
0

, 당신이 원하는 이해하는 예처럼 썼습니다 somearray에있는 각 요소를 처리하려면 break 문을 제거하면 충분합니다. 여기서 if (payment = "USD")은 쓸모가 없습니다. 간단한 문 payment="USD"이면 충분합니다. 또한 그것은 모든 루프 반복에 대해 동일한 할당이므로 외부로 당겨 루프 앞에 지정하십시오.

관련 문제