2014-12-12 2 views
0

나는 칸 아카데미에서 코드를 배우고 있습니다. 처리를 기본 언어로 사용합니다. 나는 자바가 그것에 goto 함수를 가지고 있지 않다는 것을 배웠다. 그런 다음 goto 함수를 처리를 사용하여 구현하는 방법. 스 니펫과 함께 Explanatio는 높이 평가됩니다.가공에서 goto와 같은 기능을 사용하는 방법?

여기 내 코드이고 나는 고토 기능을 사용하려면 어디 장소를 언급있다 : 당신이 아마 수있는 최선은 루프를 사용 break을 사용하는 것입니다

/* Returns either the index of the location in the array, 
 
    or -1 if the array did not contain the targetValue */ 
 

 
var doSearch = function(array, targetValue) { 
 
    var min = 0; 
 
    var max = array.length - 1; 
 
    var guess; 
 

 
    //startover: 
 

 
    if (guess === max || guess === min) { 
 
     //goto notFound; 
 
    } 
 

 
    guess = round((min + max)/2); 
 

 
    if (targetValue === array[guess]) { 
 
     return guess; 
 
    } else { 
 
     if (targetValue > array[guess]) { 
 
     min = guess + 1; 
 
     //goto startover; 
 
     } else { 
 
     max = guess - 1; 
 
     //goto startover; 
 
     } 
 
    } 
 
    } 
 
    //notFound: 
 
return -1; 
 
}; 
 

 
var primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 
 
    41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 
 
]; 
 

 
var result = doSearch(primes, 73); 
 
println("Found prime at index " + result); 
 

 
//Program.assertEqual(doSearch(primes, 73), 20);

+1

goto를 사용하지 마십시오. 그것은 실행 흐름을 죽이고, 매우 비효율적이며, 읽을 수 없습니다. http://www.drdobbs.com/jvm/programming-with-reason-why-is-goto-bad/228200966 – kamoor

+1

특정 문제 또는 아이디어에 대해 질문하는 것이 더 좋습니다. 존재하지 않는 언어 기능에 대해 묻는 것이 아닙니다. 처리는 Java를 기반으로하며 구조화 된 언어이므로 goto가 없습니다. 어쩌면 일부 Processing 자습서를 통해 작업 할 수 있습니까? https://www.processing.org/tutorials/ – jdv

+1

나는 C++로 10 년 이상 코딩 해왔다. 실제로'goto '가 실제로'* goto'가 될 필요가있는 방식으로 사용되는 것을 보았던 유일한 시간은 YACC 나 BISON에 의해 ​​자동 생성 된 파서 코드에있었습니다. 개발자들은 거의 'goto'가 원인이되는 가치가 없다는 점에 거의 보편적으로 동의하며 거의 항상 피해야합니다. –

답변

0

을 또는 goto에 대해 continue입니다.

for(var unusedVariable = 0;1==1;unusedVariable++){//equivalent of "startover:" 
    if(condition1){ 
     continue;//goto startover; 
    } 
    if(condition2){ 
     continue;//goto startover; 
    } 
    if(condition1){ 
     break;//goto notFound; 
    } 
}//notFound: