2013-05-31 3 views
-1

그것의 대출 계산기. 나는 같은 루프를 가지고있다반환 루프 결과

public String loopresult(){ 
    for (int i=1; i<10; i++) 
    return ((i) + "..........." + (i)*(i)) 
    } 

이 클래스는 문자열 값을 반환해야한다고 말한다. 시도했습니다.

valueOf.String((i) + "........" +(i)*(i))) 

하지만 작동하지 않았습니다.

txt 영역에 추가해야합니다. 이 줄을 의미하므로

txtArea.append(loopresult()) 

은 내가 txtArea 내부 싶은 등등

......... 2 3 4 ......... 9 인 int와 string 모두를가집니다.

+0

실제로 실제로 txtarea에 추가하려는 것은 무엇입니까? 1 .... 1, 2 ... 4 등.,? – vpram86

+0

스택 추적을 게시 할 수 있습니까? – Keppil

+0

2로 추가하고 싶습니다 .......... 4, 3 .......................................................................................................................................................................... – Shasi

답변

0

반환 값은 당신이 아래의 코드 대부분의 경우 다음 무슨 의도

public String loopresult() { 
     String finalValue = ""; 
     for (int i = 1; i < 10; i++) { 
      finalValue += (i) + "..........." + (i) * (i); 
     } 
     return finalValue; 
    } 
+0

대부분의 경우 줄 사이에 구분 기호가 필요합니다. ;) –

+0

또한 결과를 생성하는 동안'StringBuilder'를 사용하십시오. – Keppil

+0

''String'을 사용하여 무언가를 축적하지 마십시오! –

6

에게 추가 및 루프에 대한 후 반환 시도해야 한번 돌아갑니다. 여러 값이 아닌 하나의 값만 반환 할 수 있습니다. BTW 오류 메시지가 혼동 스러울 정도로 String이 이미 있습니다. 당신이 루프 을 사용하고 있기 때문에

public String loopresult(){ 
    StringBuilder sb = new StringBuilder(); 
    for (int i=1; i<10; i++) 
     sb.append(i + "..........." + i*i + "\n"); 
    return sb.toString(); 
} 
+0

오류 메시지가 정확했으며, 컴파일러는'for' 루프 다음에 return 문도 원했습니다. – Keppil

+0

내 첫 코멘트에 사과, 더 나은 커피 한잔 :-)하지만 "int + String"유형의 표현식이 Java에서 유효 할 때부터 나는 이전 버전에서 우리가 "+" + "......"'? –

+0

@GyroGearless 나는 당신이 "+"+ "string"'을 쓸 필요가 있다고 생각하지 않는다. 명확하게하기 위해 그것을 쓸 수있다. –

-1

컴파일러는 경고를주고있다. for 루프의 조건 (동적 값의 경우)이 처음 실패하고 flow가 for 루프에 들어 가지 않고 컴파일러가 for 루프 뒤에 return 문을 작성해야하는 이유가 생길 수 있습니다.

@ Peter Lawrey가 말했듯이 함수에서 여러 값을 반환 할 수 없습니다. 그래서 당신은

StringBuilder sb = new StringBuilder(); 
    for (int i=1; i<10; i++) 
     sb.append(i + "..........." + i*i + "\n"); 
    return sb.toString(); 

피터 Lawrey에 의해 주어진 사용하거나 흐름이 확실히 루프에 갈 곳 난 그 해결책 생각하지 않지만 당신이에서는 do..while 와 루프 당신을 대체 할 수 있지만, 나는 컴파일러가 for 문 다음에 return 문을 강제하는 이유를 보여주고있다. 깨끗하고 기능이 각 개별 대출의 int 값을 반환해야하고, 그 논리 이외의 문자열을 구성하는 것이 코드를 쉽게 읽을 수에 대한

int i = 1; 
do{ 
    return ((i) + "..........." + (i) * (i)); 
    ++i; 
}while(i<10); 
+0

하지만 첫 번째 반복으로 돌아갑니다! 그것은 기본적으로 좋은 것입니다. 그렇지 않으면 무한 루프가 될 것이기 때문입니다. –

+0

@GyroGearless do while 루프는 컴파일러가 for 문 다음에 return 문을 강제로 왜 강제적으로 표시하는지 보여주기위한 것이지 본질적으로 해결책이 아닙니다. –

0

나의 제안. 질문을 올바르게 이해하면.

자세한 내용을 알려주십시오. 텍스트 영역에 무엇을 쓰고 싶습니까? 몇 가지 대출 가치?