내가 루비로 변환하는 방법루비에서 반복으로 몇 번의 반복을 건너 뛰는 방법은 무엇입니까?
for(i = 0; i < 10; i++){
printf("Hello");
if(i == 5){
a[3] = a[2] * 2;
if(a[3] == b)
i = a[3]; //Skip to index = a[3]; depends on runtime value
}
}
아래의 C 코드가 있다고 가정? 우리가 next
을 사용하여 하나의 반복을 건너 뛸 수 있다는 것을 알고 있지만, 조건부 값에 따라 몇 번의 반복을 건너 뛰고 런타임 전에 건너 뛸 반복 횟수를 모릅니다.
나는 값이 0.1 (0.1 것이다 다르다는 점 배열의 "직선"을 찾고 : 여기
은 (Coreyward에서 언급 한 바와 같이) 실제로 일하고 코드입니다 "직선"으로 간주). 범위는 긴 "선"으로 간주되기 위해 50보다 길어야합니다. 라인 범위 [a, b]를 찾았 으면, 상한선 b를 반복하지 않으므로 +1에서 다시 시작하지 않고 b + 1에서 새로운 "직선"을 찾습니다.
for(i=0; i<arr.Length; i++){
if(arr[i] - arr[i + 50] < 0.1){
m = i; //m is the starting point
for(j=i; j<arr.Length; j++){ //this loop makes sure all values differs less than 0.1
if(arr[i] - arr[j] < 0.1){
n = j;
}else{
break;
}
}
if(n - m > 50){ //Found a line with range greater than 50, and store the starting point to line array
line[i] = m
}
i = n //Start new search from n
}
}
을 제공합니다 당신이 달성하려고하는 일의 의도를 제공하는 경우가 훨씬 더 도움이 될 것입니다. Enumerator 클래스에는 다음 반복 ('feed')의 값을 설정하고 다음 값 ('peek')을 볼 수있는 꽤 편리한 메소드가 있습니다. 또한 'for' 루프를 사용할 수 있습니다. 루비. 나는이 글을 쓰는 더 깨끗한 방법이 있다고 확신한다. 나는 그것이 무엇을하려고하는지 알지 못한다. – coreyward
C에서 배열의 끝에서부터 인덱스를 만들려고합니다. 아마 바운드를'arr.Length-50'으로 바꾸고 싶을 것입니다. 이것은 값이 초기 값의 ε을 갖는 50 개 이상의 런을 찾는 다소 복잡한 방식과 같습니다. – dbenhur
큰 색인의 값이 더 낮은 색인의 값보다 작다고 가정하는 것 같습니다. 사실입니까? – dbenhur