[RUBY] 7 ..

!Ubuntu-20.04.1!ruby-2.7.0p0

Bedingte Verzweigung

Diese beiden werden ich wahrscheinlich oft benutzen

Wie schreibe ich if-Anweisung

wenn bedingter Ausdruck dann
wird bearbeitet
elsif bedingter Ausdruck dann
wird bearbeitet
else
wird bearbeitet
end

Es scheint, dass dann nicht notwendig ist. Weder wenn noch elif.

Wie schreibe ich eine Fallerklärung

case A
when 1 then  #Wenn A 1 ist
wird bearbeitet
when 2 then  #Wenn A 2 ist
wird bearbeitet
else         #Wenn keine der oben genannten Bedingungen zutrifft
wird bearbeitet
end

Auch in diesem Fall ist dies möglicherweise nicht erforderlich.

Array

array = [] #Leeres Array
array = [1, 2, 3, 4, 5]

Schleife

Loops, die ich persönlich oft benutze

Wie schreibe ich eine for-Anweisung?

Normales Schreiben

für Variable im Objekt tun
Prozess 1
Prozess 2
・
・
・
end

muss nicht sein.

Schreiben, um den Bereich anzugeben

für Variable in 0..100 do
Prozess 1
Prozess 2
・
・
・
end

Wiederholen Sie im Bereich von a bis b in a..b. In diesem Fall ist a auch in b enthalten.

Wie schreibe ich while-Anweisung

während bedingter Ausdruck tun
Prozess 1
Prozess 2
・
・
・
end

Das muss auch nicht sein.

Wie schreibe ich jede Aussage

Objekt.each do |Variable|
Prozess 1
Prozess 2
・
・
・
end

Iterieren Sie, bis das Objekt keine Elemente mehr enthält.

Versuchen Sie die Wahlkreisbeurteilung mit if-Anweisung, Array und for-Schleife

Erstellen Sie ein Programm, das Ihnen die Konstellation mitteilt, wenn Sie der Befehlszeile einen Geburtstag geben. Die Beurteilung erfolgt durch Feststellung, wie viele Tage seit dem ersten Tag der Konstellation von Ohitsuji am 21. März vergangen sind.

days = [31,29,31,30,31,30,31,31,30,31,30,31]  #Anzahl der Tage in einem Monat
inter_star = [30,31,32,31,31,31,31,30,29,29,30,31]  #Tage jeder Konstellation(Der Beginn von Ohitsuji)
star_name = ["Schaf", "Oshi", "Zwei", "Krabbe", "Löwe", "Jungfrau", "Balance", "Skorpion", "Sein", "Ziege", "Mizugame", "Uo" ]

birth_month = ARGV[0].to_i
birth_day = ARGV[1].to_i

sum = 0  #1/Variable, um die Anzahl der Tage von 1 zu setzen

for month in 0..(birth_month - 2)
  sum = sum + days[month]
end

sum = sum + birth_day

if sum < 81
  sum = sum + 366
end

sum = sum - 81  #Erster Tag von Ohitsuji 3/21 ist 1/1 bis 81 Tage

for month in 0..11
  sum = sum - inter_star[month]
  if sum < 0
    puts "#{ARGV[0]}Mond#{ARGV[1]}In Japan geboren, bist du "Ohitsuji-za"!"
    break
  end

  if sum < inter_star[month + 1]
    puts "#{ARGV[0]}Mond#{ARGV[1]}Du bist am Tag geboren#{star_name[month + 1]}Es ist ein Sitzplatz!"
    break
  end
end

An der Kommandozeile

> ruby star.rb 7 24

Wenn Sie eingeben

Geboren am 24. Juli, bist du "Shishiza"!

Die Ausgabe wurde erhalten.

Referenzseite

Dieser Artikel wurde mit Bezug auf die folgenden Websites erstellt.


Recommended Posts

6 ..
7 ..
TDD-Studie Nr. 5 (18. Juli 2020)
TDD-Studie Nr. 4 (16. Juli 2020)
TDD-Studie Nr. 3 (15. Juli 2020)