[RUBY] 7e

!Ubuntu-20.04.1!ruby-2.7.0p0

Branche conditionnelle

Ces deux sont ceux que je vais probablement utiliser souvent

Comment écrire une déclaration if

si expression conditionnelle alors
En traitement
expression conditionnelle elsif alors
En traitement
else
En traitement
end

Il semble que ce ne soit pas nécessaire. Ni sinon ni elif.

Comment rédiger une déclaration de cas

case A
when 1 then  #Quand A vaut 1
En traitement
when 2 then  #Quand A vaut 2
En traitement
else         #Lorsqu'aucune des situations ci-dessus ne s'applique
En traitement
end

Dans ce cas également, cela peut ne pas être nécessaire.

Tableau

array = [] #Tableau vide
array = [1, 2, 3, 4, 5]

boucle

Boucles que j'utilise personnellement souvent

Comment rédiger une instruction for

Écriture normale

pour la variable dans l'objet faire
Processus 1
Processus 2
・
・
・
end

ne doit pas être.

Comment écrire pour spécifier la plage

pour variable en 0..100 do
Processus 1
Processus 2
・
・
・
end

Répétez dans la gamme de a à b dans a..b. Dans ce cas, a est également inclus dans b.

Comment écrire une déclaration while

tandis que l'expression conditionnelle fait
Processus 1
Processus 2
・
・
・
end

Cela n'a pas non plus à faire.

Comment rédiger chaque déclaration

objet.each do |variable|
Processus 1
Processus 2
・
・
・
end

Itérez jusqu'à ce qu'il n'y ait plus d'éléments dans l'objet.

Essayez le jugement de circonscription en utilisant l'instruction if, le tableau et la boucle for

Créez un programme qui vous indique la constellation lorsque vous donnez un anniversaire à la ligne de commande. Le jugement est fait en déterminant combien de jours se sont écoulés depuis le premier jour de la constellation d'Ohitsuji le 21 mars.

days = [31,29,31,30,31,30,31,31,30,31,30,31]  #Nombre de jours dans un mois
inter_star = [30,31,32,31,31,31,31,30,29,29,30,31]  #Jours de chaque constellation(Le début d'Ohitsuji)
star_name = ["mouton", "Oshi", "Deux", "Crabe", "Lion", "vierge", "Équilibre", "Scorpion", "Être", "chèvre", "Mizugame", "Uo" ]

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

sum = 0  #1/Variable pour mettre le nombre de jours à partir de 1

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  #Premier jour d'Ohitsuji 3/21 est 1/1 à 81 jours

for month in 0..11
  sum = sum - inter_star[month]
  if sum < 0
    puts "#{ARGV[0]}Lune#{ARGV[1]}Né au Japon, vous êtes "Ohitsuji-za"!"
    break
  end

  if sum < inter_star[month + 1]
    puts "#{ARGV[0]}Lune#{ARGV[1]}Tu es né le jour#{star_name[month + 1]}C'est un siège!"
    break
  end
end

Sur la ligne de commande

> ruby star.rb 7 24

Si vous entrez

Né le 24 juillet, vous êtes "Shishiza"!

La sortie a été obtenue.

Site de référence

Cet article a été créé en référence aux sites suivants.


Recommended Posts