2014-02-26 3 views
0

여기 코드는 조건부없이 잘 동작하지만 일단 코드를 넣으면 " 메서드는 String [] 형식의 결과를 반환해야합니다.나는 processing.js에서 배열을 반환하는 함수를 원한다. 배열을 조건부에 넣을 때까지 코드는 작동한다.

나는 지금까지 모든 것을 시도했으며 여러분이 여기서 무엇이 잘못 볼 수 있기를 바랍니다. 이 주제가 그물에 대해 많이 언급되었지만 해결 방법 중 어느 것도 문제에 대한 어떤 결론도주지 못했습니다. 그것의 아마 무언가 아주 간단하다 나는 계속 봐.

또한 첫 번째 코드 비트는 코드 상자에 int를 넣고 싶지 않습니다. 죄송합니다.

String []loadString (String A){ 

if(A.equals("YEP")){ 

    //Array 
    String []IS = { 
     "#FFFCFCFC", "S10", "nameString", "print", 
     "newlineS8", "S4", "smallspace", "print", "G8", "nameGraph", 
     "newlineS7", "G4", "nationalityGraph", "S3", "space", "print", "elementGraph", "space",  "print" ,"sexGraph", 
     "newlineS1", 
     "newlineS1","G2","point","S2","listA","print", 
     "newlineS1","G2","point","S2","listB","print", 
     "newlineS1","G2","point","S2","listC","print", 
     "newlineS1","G2","point","S2","listD","print", 
     "newlineS4" }; 

     return IS; 

    } 
} 

void draw() { 

String IS[] = loadString ("YEP"); // when I send the string "yep" the array should be loaded 
println(IS); 
noLoop(); 
} 
+0

loadString()은 실제 별도의 함수입니까, 아니면 여기에 제시 한 것과 똑같이 작성된 코드입니까? – Serlite

+0

정확하게 그와 같이 쓰여졌습니다. processing.js에서 "사용"하지 않았다는 것을 알고있는 한, 방금 테스트 했으므로 loadString을 다른 것으로 변경해도 오류가 사라지지 않습니다. –

+0

죄송합니다. 서식을 지정하지 않은 첫 번째 코드 줄을 보지 못했습니다. 그 편집을 추가했습니다. – Serlite

답변

0

(죄송 지연이 여전히 도움이되기를 바랍니다.)

흠, 내가 필요 loadString() 함수는 문자열을 반환하기 때문에 오류를 얻고있는 이유는 생각 [] 때마다 그것을 이것이 리턴 타입이기 때문에 호출됩니다.

if 문이 없으면 항상 String[] IS을 반환합니다. 그러나 if 문을 추가하면 String[] IS의 전체 선언 및 반환이 if 문 내부에 래핑되므로 해당 결과가 반환되지 않을 수도 있습니다. 이를 방지하기 위해

한 가지 방법 것입니다 (예를 들어, 내가 인수를 변경하고, 경우에 조건이 있으므로 문이 실행 된 경우 내부에 아무것도. 실패하지 않기 때문에 것은 loadString() 복귀? 아무것도, 무엇을, loadString("NOPE") 대신 loadString("YEP")의라고도 함) 기본 반환 값이므로 올바른 유형의 결과가 항상 반환되며 조건이 충족되면 의미있는 값으로 만 값이 변경됩니다. 내가 처음에로 String[] IS을 설정하는 방법

String []loadString (String A){ 

    String[] IS = {""}; 

    if(A.equals("YEP")){ 

    //Array 
    IS = new String[] { 
     "#FFFCFCFC", "S10", "nameString", "print", 
     "newlineS8", "S4", "smallspace", "print", "G8", "nameGraph", 
     "newlineS7", "G4", "nationalityGraph", "S3", "space", "print", "elementGraph", "space",  "print" ,"sexGraph", 
     "newlineS1", 
     "newlineS1","G2","point","S2","listA","print", 
     "newlineS1","G2","point","S2","listB","print", 
     "newlineS1","G2","point","S2","listC","print", 
     "newlineS1","G2","point","S2","listD","print", 
     "newlineS4" }; 

    } 

    return IS; 
} 

참고 : 여기에 (내가 너무 처리에 새로운 비트를, 그래서 나는이 방법 아무 문제가 없습니다 바랍니다) Processing.js에서 작동하는 것 같다 loadString()의 수정입니다 배열에 빈 문자열 하나를 넣고 if 문에서 값을 변경하십시오. 이렇게하면 조건이 실패하더라도 String[] IS이 반환되므로 함수는 적절한 유형의 결과를 반환합니다.

희망이 도움이됩니다. 명확하지 않은 것이 있으면 알려주세요.

+0

네, 그 여전히 도움이 !! 고맙습니다 :) 그리고 당신의 설명은 매우 분명합니다. –

+0

좋아요! 이 답이 문제를 해결했다면 그 답을 인정 된 답으로 표시하는 것을 잊지 마십시오. (대답의 왼쪽에있는 체크 표시 개요를 클릭하십시오.) – Serlite

+0

완료 및 완료 :) –