Es scheint, dass es ** jede ** Methode, ** für ** Anweisung, ** bis ** Anweisung, ** mal ** Methode, ** bis ** Methode usw. als Arten der iterativen Ruby-Verarbeitung gibt. Ich verstehe nicht, welcher Prozess beim Iterieren mit dem Algorithmus von paiza verwendet werden soll, daher werde ich die Verwendung und die Funktionen zusammenfassen.
Die iterative Verarbeitung wird häufig zusammen mit Arrays (Objekte, die mehrere Daten in der richtigen Reihenfolge speichern können (Array-Klasse)) und Blöcken (Verarbeitungsgruppen, die als Methodenargumente übergeben werden können) verwendet. In den meisten Fällen iteriert Ruby mit jeder Methode. * In mehreren Sprachen wird häufig die for- und foreach-Syntax verwendet.
Anstatt dass Ruby die iterative Verarbeitung als Sprachfunktion ausführt, führt jede Methode des Arrays die iterative Verarbeitung aus. Die Rolle jeder Methode besteht darin, die Elemente des Arrays bis zum Ende der Reihe nach zu extrahieren. Wie man mit dem extrahierten umgeht, ist in ** Block ** beschrieben.
#Beispiel(Verarbeitung zum Hinzufügen von Elementen eines Arrays)
numbers = [1, 2, 3, 4]
sum = 0
numbers.each do |n|
sum += n
end
sum #=> 10
Der Block ist der folgende Teil des obigen Codes.|n|N istArgument blockieren(Name ist frei)Die Elemente des Arrays, die von jeder Methode übergeben wurden, werden eingegeben.
#Teil blockieren
do |n|
sum += n
end
#do ..Anstelle von Ende{}verwenden
numbers.each {|n| sum += n}
Wenn Sie den Vorgang einfach n-mal wiederholen möchten, ohne ein Array zu verwenden, verwenden Sie die times-Methode der Integer-Klasse.
sum = 0
#Wiederholen Sie den Vorgang 5 Mal. 0 für n,1,2,3,4 wird eingegeben.
5.times {|n| sum += n} or 5.times{sum += 1}
sum #=> 10
Wenn Sie etwas verarbeiten möchten, während Sie die Zahl von n auf m um eins erhöhen, verwenden Sie die upto-Methode der Integer-Klasse. Umgekehrt eine Downto-Methode, die eins nach dem anderen reduziert.
#bis zur Methode
a = []
10.upto(14) {|n| a << n}
a #=> [10, 11, 12, 13 ,14]
#Downto-Methode
a = []
14.doentown(10){|n| a << n}
a #=> [14 ,13 ,12 ,11 ,10]
Syntax für die iterative Verarbeitung. Ausführen, wenn der bedingte Ausdruck nach while wahr ist. Ausführen, wenn der bedingte Ausdruck nach bis falsch ist.
#while-Anweisung
a = []
while a.size < 5
a << 1
end
a #=> [1 ,1 ,1 ,1 ,1]
#bis Aussage
a = [10 ,20 ,30 ,40 ,50 ]
until a.size <= 3 #Löschen Sie das letzte Element weiter, es sei denn, Array a enthält 3 oder weniger Elemente.
a.delete(-1)
end
a #=> [10 ,20 ,30]
Sie können sich vorstellen, dass die for-Anweisung denselben Zweck hat wie jede Methode. Ruby scheint jedoch häufiger die einzelnen Methoden zu verwenden.
numbers = [1 ,2 ,3 ,4]
sum = 0
for n in numbers
sum += n
end
sum #=> 10
#Es ist auch möglich, do und write in eine Zeile zu setzen.
for n in numbers do sum += end
Derzeit scheint es gut, verschiedene Methoden zu erlernen, indem andere Kartenmethoden verwendet werden, die auf jeder Methode basieren.
Recommended Posts