2017-11-30 10 views
-2

Java에서 오류가 계속 발생하며 "누락 된 return 문"이 왜 발생하는지 알 수 없습니다. 내가 뭘 하려는지는 문자열이 문자열에 나타나고 비교를 기반으로 부울 값을 반환하는지 확인하는 두 개의 매개 변수 (String 및 char)가있는 메서드를 만드는 것입니다. 여기에 내가 지금까지 가지고있는 것이있다 :부울 값을 반환 할 때 return 문이 누락되었습니다.

public static boolean compare(String h, char x){ 

int counter = 0; 
for(int i = 0; i < h.length(); i++){ 
    counter++; 
    if(h.charAt(i) == 'o'){ 
    return true; 
    } 
    else 
    return false; 
} 

    } 

다시 말하지만 콘솔의 오류는 "return return statement"입니다. 자바 전문가가 아니며 코드에 오류가있을 수 있습니다. 사전에 사과드립니다.

편집 : 들여 쓰기를 보지 말고 여기에 복사하여 붙여 넣기 만하면됩니다. 편집 2 : "h"는 내 코드에서 "Hello world"입니다.

+0

else 코드에 중괄호를 추가하고 확인하십시오. –

+3

힌트 : h가 비어있는 경우 무엇 –

+0

* 들여 쓰기를 보지 마십시오. * 코드가 들여 쓰여질 때, 나와 다른 사람들은 그것을 읽을 수 없습니다. 제대로하기를 원하면 문제가 명확해질 것입니다. –

답변

1

부울 결과를 루프에 반환하는 대신 변수에 할당해야합니다. for 문 다음에 return 문을 추가하면 문제가 해결됩니다. 이 return 문을 누락 오류를 보여줄 수 있도록 때문에 루프 i < h.length()에 대한 h.length() 다음 루프 내부의 코드 0 경우 귀하의 HTH는

public static boolean compare(String h, char x){ 

     int counter = 0; 
     boolean flag = false; 

     for(int i = 0; i < h.length(); i++){ 
     counter++; 
     if(h.charAt(i) == 'o'){ 
      flag = true; 
     } 
     else 
      flag = false; 
     } 
     return flag; 
} 
+0

'String'매개 변수 'h'에 논리가 주어진'char' 값'o'를 포함한다고 가정하면'String'의 마지막 문자가'o' 인 경우에만'true'가되고'false'를 반환하면'true'가됩니다. '. 위의 로직 대신'if-else'를 사용할 수 있습니다. (또는) 일단'char'의 첫번째 발생을 발견하면'for-loop'를 깨뜨릴 수 있습니다. 내 가정이 맞다면 – Praveen

0

귀하의 ifelse 조건이 for 루프에 있기 때문입니다. for 루프 자체는 조건부 루프입니다.

if 또는 else에 미전도 상태가 계속 될 수 있습니다. 여기서 for 루프 외부에 부울을 반환해야합니다.

예제 시나리오 : 'h'는 빈 문자열입니다.

편집 : 그리고 당신의 문 "시간"에 따라 "안녕하세요 세계가"컴파일시에, 내 코드에는 컴파일러가 시간 '에 전달되는 값을보고하지 않습니다 '. 귀하의 을 비교하는 방법은 개인 신상이며 단 하나의 용도로만 제한되어 있지 않습니다.

0

도달 할 수 없습니다.