Предположим, у меня есть код C ниже
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
}
}
Как конвертировать в Ruby? Я знаю, что мы можем пропустить одну итерацию, используя next
, но мне нужно пропустить несколько итераций в зависимости от условного значения, и я не знаю, сколько итераций пропустить до времени выполнения?
Вот код, над которым я на самом деле работаю (как упоминал Coreyward):
Я ищу "прямую линию" в массиве, значения которой отличаются менее чем на 0,1 (менее 0,1 будет считаться "прямой линией"). Диапазон должен быть больше 50, чтобы считаться длинной «линией». После того как я найду диапазон строк [a, b], я хочу пропустить итерации до верхнего предела b, чтобы он не начинался снова с a + 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
}
}