Supponiamo che io ho il codice C al di sottocome saltare alcune iterazioni in un ciclo in Ruby?
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
}
}
Come convertire a Ruby? So che possiamo saltare una iterazione usando next
, ma devo saltare alcune iterazioni a seconda del valore condizionale e non so quante iterazioni saltare prima del runtime?
Ecco il codice che sto effettivamente lavorando (come detto da Coreyward):
cerco "retta" nella matrice che i valori differisce meno di 0,1 (meno di 0,1 sarà considerato come una "linea retta"). L'intervallo deve essere più lungo di 50 per essere considerato come una "linea" lunga. Dopo aver trovato l'intervallo di righe [a, b], voglio saltare le iterazioni al limite superiore b in modo che non ricomincia da un + 1, e inizierà a trovare una nuova "linea retta" da 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
}
}
Sarebbe molto più utile se hai fornito l'intento di ciò che si sta cercando di realizzare. Ci sono alcuni metodi molto utili nella classe Enumerator che ti permettono di impostare il valore per la successiva iterazione ('feed') e vedere il valore successivo (' peek'), e puoi anche usare un ciclo 'for' in Rubino. Sono sicuro che c'è un modo più pulito di scrivere questo, semplicemente non so cosa stia cercando di fare. – coreyward
Stai per indicizzare la fine della tua matrice in C, probabilmente vuoi cambiare il limite a "arr.Length-50". Questo sembra un modo un po 'complicato per trovare corse di 50 o più i cui valori sono con epsilon del valore iniziale. – dbenhur
Sembra che si assuma che i valori a un indice più grande non siano mai inferiori ai valori nell'indice inferiore. È vero? – dbenhur