Wie der Titel schon sagt. Schreiben wir den Code mit der Methode each_with_index.
Eine Methode, die die Anzahl der Verarbeitungen eines Elements gleichzeitig mit der Iteration des Elements angeben kann. Sie können jede Methode auch für die iterative Verarbeitung von Elementen verwenden. Die Methode each_with_index besteht darin, dass auch angezeigt werden kann, welche Nummer verarbeitet wurde. Schreiben Sie wie folgt.
Sequenzname.each_with_index do |item, i|
#wird bearbeitet
end
fruits = ["Mandarine", "Ananas", "Apfel"]
fruits.each_with_index do |fruit, i|
puts "#{i}Die zweite Frucht ist#{fruit}ist."
end
Das Ausgabeergebnis ist wie folgt.
Die 0. Frucht ist Mandarine.
Die erste Frucht ist Ananas.
Die zweite Frucht ist ein Apfel.
Eine Methode, die sucht, ob ein Array einen bestimmten Wert enthält, und das Ergebnis ausgibt Schreiben wir mit der Methode each_with_index. ~~ Sie können die binäre Suche verwenden, ohne die Methode each_with_index zu verwenden ~~
Das Array ist
input = [3, 6, 9 ,12, 15, 21, 29, 35, 42, 51, 62, 78, 81, 87, 92, 93]
Angenommen, Sie möchten den Wert, nach dem Sie suchen möchten, der Variablen target_num
zuweisen.
Stellen Sie sicher, dass Sie die folgenden Suchergebnisse erhalten.
#Wenn sich der Wert, den Sie suchen möchten, im Array befindet. Wenn der Wert, nach dem Sie suchen möchten, beispielsweise 12 ist.
4. von links
#Wenn der Wert, den Sie suchen möchten, nicht im Array enthalten ist
Diese Nummer ist nicht enthalten
def search(target_num, input)
input.each_with_index do |num, index|
if num == target_num
puts "Von links#{index + 1}Ist in der zweiten"
return
end
end
puts "Diese Nummer ist nicht enthalten"
end
input = [3, 6, 9 ,12, 15, 21, 29, 35, 42, 51, 62, 78, 81, 87, 92, 93]
target_num = gets.to_i
search(target_num, input)
Dieses Mal wird die Methode, die den Suchvorgang ausführt, als Suchmethode definiert.
Verwenden Sie in der Suchmethode die Methode each_with_index Die im Array "input" gespeicherten Werte werden einzeln als "num" abgerufen und in der Reihenfolge nummeriert, in der sie abgerufen wurden. Diese Nummer geht in den Index.
Vergleichen Sie, ob num
und target_num
(die den Wert enthalten, nach dem Sie suchen möchten) identisch sind.
Wenn sie gleich sind, möchten wir die Nummer des Werts von links im Array ausgeben.
setzt" # {index + 1} th von links "
.
Und da die Suchergebnisse bereits verfügbar sind und keine weiteren Suchvorgänge erforderlich sind, beenden Sie mit "return".
Wenn nicht alle im Array gespeicherten Werte mit denen übereinstimmen, die Sie suchen möchten
setzt" diese Nummer ist nicht enthalten "
.
das ist alles. Es ist ein wenig vom Thema entfernt, aber es ist ziemlich schwierig, den Kommentar zu schreiben. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts