[RAILS] [Ruby] Ein Programm / Konzept, das each_with_index und search kombiniert

Ich werde es für die Ausgabe schreiben. `Verwenden Sie Ruby 2.6.5, das unter macOS Catalina 10.15.6 installiert ist. ``

Was Sie tun möchten

Sie möchten eine Methode mit ** search ** und ** each_with_index ** erstellen, die nach einer Nummer sucht und das Ergebnis der Nummer zurückgibt, in der sie enthalten ist.

Zunächst möchte ich ein solches Array haben

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

Also möchte ich eine Suche durchführen, die wie folgt verwendet werden kann


search(12, input)
=>4 ..

search(7, input)
=>Diese Nummer ist nicht enthalten

Über each_with_index

** each_with_index ** ist eine der in Ruby integrierten Standardmethoden. Gleichzeitig mit der Iteration des Elements können Sie auch anzeigen, welche Nummer das Element verarbeitet hat.


#each_with_Verwendung des Index

Sequenzname.each_with_index  do |item, i|

end

** Detaillierteres Verwendungsbeispiel für each_with_index **


cigarettes = ["MEVIUS", "highlight", "LuckyStrike"]

cigarettes.each_with_index do |item, i|
 puts "#{i}Die zweite Zigarette ist#{item}ist."
end

Wenn Sie dies ausführen ↑, erhalten Sie das folgende Ausgabeergebnis.

Die 0. Zigarette ist MEVIUS.
Die erste Zigarette ist ein Highlight.
Die zweite Zigarette ist Lucky Strike.

Nun zum Hauptthema, wie machst du das?

  1. Wie auch immer, Sie müssen die ** Suchmethode ** selbst definieren.
  2. Bereiten Sie zwei formale Argumente vor. (Tage_i, Eingabe)
  3. Array-EingabeZueach_with_indexの使い方に当てはめて・・・。ブロック変数にも2つ引数Zu渡しす(なんとなく | i, index |Ich habe es gemacht).
  4. Wenn es enthalten ist, gibt es ~, und wenn es nicht enthalten ist, gibt es ~, also sollten Sie den bedingten Zweig verwenden, wenn ...? Wenn Sie i eingeben und es gleich target_num ist, werden die Puts vor der Rückgabe ausgegeben. Ich frage mich, ob ich so viele Elemente wiederholen kann, wie ich zurückgeben möchte!
  5. Ordnen Sie das Array an und rufen Sie eines als Test auf

array.rb



def search(tage_i, input)
  input.each_with_index do |i, index|
    if i == tage_i
      puts"#{index + 1}Ist in der zweiten!"
      return
    end
  end
  puts "Diese Nummer ist nicht enthalten"
end

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

Ergebnis スクリーンショット-2020-08-24-23.42.57.jpg

Übrigens, lassen Sie uns die zutreffenden Zahlen ausgeben ...

array.rb



def search(tage_i, input)
  input.each_with_index do |i, index|
    if i == tage_i
      puts"#{index + 1}Ist in der zweiten!"
      return
    end
  end
  puts "Diese Nummer ist nicht enthalten"
end

input = [3, 5, 9 ,12, 15, 21, 29, 35, 42, 51, 62, 78, 81, 87, 92, 93]
search(11, input)
search(29, input) #Addition von Zahlen, die die Bedingungen von "~ th!"

スクリーンショット-2020-08-24-23.42.57.jpg

Wie auch immer

Kannst du langsam und sorgfältig überlegen ...? Ich kann nicht leugnen, dass ich nur die Oberfläche verstehen kann, also mache ich mir eine Notiz. Ich denke, ich werde es wieder aktualisieren.

Recommended Posts

[Ruby] Ein Programm / Konzept, das each_with_index und search kombiniert
[Ruby] Ein Programm, das Primzahlen bestimmt
Kombination von Suche und jedem_mit_Index
[ruby] Erstellen eines Programms, das nur auf bestimmte Bedingungen reagiert
Ich habe ein Routensuchprogramm in TDD geschrieben und versucht, es umzugestalten
Ein Programm, das die Leistung von 2 bis 100 berechnet
Eine Geschichte, die Geschäftslogik und Modell trennt
Ruby Sum ist eine nüchterne und erstaunliche Geschichte
Janken-Programm mit Ruby und seinem Test (Testeinheit)
Ich möchte PowerMock in einer Klasse verwenden, die parametrisierte Tests und gewöhnliche Tests kombiniert