[RAILS] [Ruby] Wie man gerade oder ungerade Zahlen in einem Array zählt

Erstellen Sie eine Methode, die eine gerade oder ungerade Anzahl von Werten im Array zählt.

Verwenden Sie die Methode gerade? </ Font> für gerade Werte und die Methode ungerade? </ Font> für ungerade Werte.

  • Nachfolgend sind nur gerade Muster aufgeführt. Es kann für ungerade Zählungen verwendet werden, indem gerade in ungerade umgewandelt werden.

Anwendungsbeispiel

Ruby


number = 2
number.even?

//→ true wird zurückgegeben

Antwortbeispiel

Ruby


def count(number)
  count = 0
  number.each do |num|
    if num.even?
      count += 1
    end
  end
  puts count
end

Kommentar

Um eine Methode zu erstellen, werden diesmal der Methodenname und die formale Argumentnummer in der ersten Zeile beschrieben.

Ruby


def count(number)

Wie oben erwähnt, gibt die gerade? -Methode nur wahr oder falsch zurück, sodass sie nicht alleine gezählt werden kann. Wenn Sie die gerade? -Methode für ein Array wie unten gezeigt verwenden, tritt daher ein Fehler auf.

Fehlerbeispiel

Ruby


hairetsu = [1,2,6,8,10]
hairetsu.even?

// NoMethodError (undefined method `even?' for [1, 2, 6, 8, 10]:Array)

Obwohl count = o in der zweiten Zeile beschrieben ist, wird die Zählung durch Beschreiben vor der iterativen Verarbeitung initialisiert.

Um zu zählen, wird es von jeder Methode wiederholt. Wenn es als Fluss wahr ist, zählt es hoch, und wenn es falsch ist, tut es nichts und fährt mit der Beurteilung des nächsten Elements fort.

Ruby


number.each do |num|
  if num.even?
    count += 1
  end
end

Ich verwende die Puts-Methode, um die zuletzt gezählte auszugeben.

Ruby


puts "count"

Sie haben jetzt eine gerade oder ungerade Zählmethode in einem generischen Array erstellt. Vergessen Sie beim Aufrufen einer Methode nicht, ein Array als tatsächliches Argument von außerhalb der Methode anzugeben.

Recommended Posts