[RUBY] Schleifenverarbeitung

Arten der iterativen Verarbeitung

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.

Erste Prämisse

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.

jede Methode

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

Was ist ein Block?

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

Block (keine Zeilenumbruchversion)

#do ..Anstelle von Ende{}verwenden

numbers.each {|n| sum += n}

mal Methode

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

Up- und Downt-Methoden

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]

während und bis Aussagen

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]

zur Aussage

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

Eindrücke der Zusammenfassung

Derzeit scheint es gut, verschiedene Methoden zu erlernen, indem andere Kartenmethoden verwendet werden, die auf jeder Methode basieren.

Recommended Posts

Schleifenverarbeitung
[Java] Schleifenverarbeitung und Tabelle von neunundneunzig
Datumsverarbeitung
Schleifenanweisung
[Verarbeitung × Java] Verwendung der Schleife
Java-Thread-Verarbeitung
Java-String-Verarbeitung
Ruby iterativer Prozess
[Java] Multithread-Verarbeitung
StackOverflowError (Endlosschleife)
Zwischenverarbeitung streamen
Weihnachten mit Verarbeitung
[Java] Stream-Verarbeitung
Erstellen Sie eine vielseitige Verarbeitung
Java iterativer Prozess