[RUBY] Training mit der Methode each_with_index

Verwenden Sie die Methode each_with_index, um das Element zu finden, das Sie im Array finden möchten. Erstellen wir eine Methode, um herauszufinden, welche Zahl das Element ist.

Lassen Sie uns die Nummer im folgenden Array suchen und eine Suchmethode erstellen, die das Ergebnis der enthaltenen Nummer anzeigt.

input = [3, 5, 9, 12, 15, 21, 29, 35, 42, 51, 62, 78, 81, 87, 92, 93]

In der Suchmethode Überprüfen Sie, ob eine bestimmte Nummer in diesem Eingabearray enthalten ist Wenn es enthalten ist → Geben Sie die Anzahl der Elemente aus. Wenn es nicht enthalten ist → Es ist nicht enthalten. Wird ausgegeben. Möglicherweise ist eine solche Beschreibung erforderlich.

Um zu wissen, um welches Zahlenelement es sich handelt, wenn es die Nummer enthält, nach der Sie suchen möchten Sie müssen die Methode each_with_index verwenden.

each_with_index Jede Methode kann nur ein Element eines Arrays abrufen, nicht die Nummer dieses Elements. Mit der Methode each_with_index können Sie jedoch das "Element des Arrays" und die "Anzahl der Elemente" als Blockvariablen extrahieren.

Beschreibungsbeispiel

input.each_with_index do |item, i|
~
end

item ist ein Element, das im Eingabearray enthalten ist, und im Eingabearray ist es der Wert selbst von 3,5,9,12 ... 93. i ist die Elementnummer (Index) und nimmt Werte von bis zu 0,1,2,3, ... 15 in der Reihenfolge von links im Eingabearray an. Da es sich um jede Methode handelt, wird sie bis zum Ende der Elemente des Arrays wiederholt. Zum Beispiel

example = [3, 5, 9, 12]
example.each_with_index do |item, i|
  puts "#{item}Ist#{i}Die zweite Nummer."
end

Wenn Sie damit ausgeben,

3 ist die 0. Zahl.
5 ist die erste Zahl.
8 ist die zweite Zahl.
12 ist die dritte Zahl.

Wird ausgegeben. Es wurde festgestellt, dass sich die Methode each_with_index bis zum letzten Element des Arrays wiederholt und das Element (Element) und das Zahlenelement (i) zusammen abgerufen werden können.

Schreiben Sie dann mit der Methode each_with_index eine Methode, um den zu suchenden Wert und die Nummer zu überprüfen, in der der Wert enthalten ist. Als Prozedur input.each_with_Blockvariable mit Index|item, i|Mitnahme. Schreiben Sie einen bedingten Ausdruck, um festzustellen, ob der abgerufene Wert mit dem gesuchten Wert übereinstimmt. Wenn die Bedingungen erfüllt sind → Zeigen Sie die Nummer des Elements an. Wenn die Bedingungen nicht erfüllt sind → Zeigen Sie an, dass die Nummer nicht enthalten ist.

def search(target_num, input)
  input.each_with_index do |num, index|
    if num == target_num
      puts "#{num}Ist#{index + 1}Die zweite Nummer."
      return
    end
    puts "Diese Nummer ist nicht enthalten."
   end
  end
end
input = [3, 5, 9, 12, 15, 21, 29, 35, 42, 51, 62, 78, 81, 87, 92, 93]
search(42, input)

Geben Sie target_num an und geben Sie sie als Argumente für die Methode search ein. target_num ist die Nummer, nach der Sie suchen möchten, und input ist das Array, nach dem Sie suchen. input.each_with_index do |num, index| In dem Teil von werden die Elementnummer und die Nummer des Elements (Index) aus dem Eingabearray bis zum letzten Wert des Arrays extrahiert. if num == target_num Hier schreibe ich einen bedingten Ausdruck, um zu sehen, ob das Element (die Nummer) des Arrays mit der Nummer übereinstimmt, die Sie suchen möchten (diesmal überprüfen Sie 42 am Ende). Wenn es eine Übereinstimmung gibt, werden die Anzahl und Anzahl der Elemente angezeigt, die Sie in der Puts-Methode finden möchten. Komplett!

Ich habe mich während der Erstellung gefragt. Sollte ich eine Beschreibung schreiben, die angezeigt wird, wenn sie in if enthalten ist, und eine Beschreibung, die sie anzeigt, wenn sie nicht in else enthalten ist? Ich dachte, dass ich die folgende Beschreibung gemacht habe.

def search(target_num, input)
  input.each_with_index do |num, index|
    if num == target_num
      puts "#{num}Ist#{index + 1}Die zweite Nummer."
    else
    puts "Diese Nummer ist nicht enthalten."
    end
  end
end

Lassen Sie uns in diesem Fall das Ergebnis anzeigen.

input = [3, 5, 9, 12]

Wenn du es sagst

search(9, input)

Wann

Diese Nummer ist nicht enthalten.
Diese Nummer ist nicht enthalten.
9 ist die dritte Zahl.
Diese Nummer ist nicht enthalten.

Es wird so angezeigt und alle Ergebnisse werden angezeigt. Mit anderen Worten, je mehr Elemente in einem Array enthalten sind, desto nutzloser sind die Ergebnisse. Es wird nur durch die Verarbeitung abgeschlossen, wenn es dort enthalten ist.

   if num == target_num
      puts "#{num}Ist#{index + 1}Die zweite Nummer."
      return
   end

Selbst wenn es enthalten ist, endet der Prozess dort, weil die Rückgabe beschrieben wird, sodass der Prozess "Die Nummer ist nicht enthalten" ausgegeben werden kann, ohne gelesen zu werden.

Recommended Posts

Training mit der Methode each_with_index
Versuchen Sie es mit der Methode each_with_index
Java-Vergleich mit der compareTo () -Methode
Bestätigen Sie die Namenseingabe mit der include? -Methode
[Schienen 6] zerstören mit der Ressourcenmethode
Versuchen Sie es mit der IBM Java-Methodenverfolgung
Newcomer-Training mit der Web-Basic-Programmierung mit Java-
Erhalten Sie eine Fehlermeldung mit einer beliebigen Methode