Une méthode qui peut être utilisée pour les objets numériques. Répétez le processus inclus dans do ~ end
pour le nombre de nombres.
J'ose commencer par la conclusion.
・ ~~ Variable de bloc ~~ Le paramètre de bloc n'est valide que dans le bloc (portée) -Ceux définis à l'extérieur peuvent également être utilisés à l'intérieur du bloc (notez qu'ils peuvent être réécrits) </ font>
Je veux que vous mettiez ceci dans le coin de votre tête et poursuivez votre lecture.
La portée est la plage dans laquelle les variables définies peuvent être utilisées.
do~end
Ou{ }
(Ondulations)L'intérieur s'appelle un bloc. De plus, dans le bloc|Nom de variable|
||Variables dans (Pipeline)~~Variable de bloc~~C'est ce qu'on appelle un paramètre de bloc.
STEP1
Pour vous assurer que vous le comprenez, commencez ici.
num = 1
puts num
#=>1
Un tel programme apparaît au tout début des variables. Pour l'expliquer soigneusement, la valeur numérique 1 est affectée à la variable num, et elle est appelée par put. Je n'en suis pas conscient, mais comme il s'agit de la plage (portée) de la variable num, elle peut être appelée avec put.
STEP2
num = 1
3.times do
puts num
end
#=>1
# 1
# 1
Cela a eu pour effet de répéter "met num" 3 fois et un "1" 3 fois. Il convient de noter la portée de la variable num. Vous pouvez utiliser des variables définies en dehors de do ~ end
.
STEP3
3.times do
num = 1
end
puts num
#=>NameError
Le code est similaire à STEP2, mais j'obtiens une erreur. ↓
NameError (undefined local variable or method num for main:Object)
La traduction simple est «« num »de« met num »n'est pas défini».
C'est vrai, tout ce qui est défini à l'intérieur de do ~ end
ne peut pas être appelé en dehors de do ~ end
.
En fait, un point d'achoppement! !!
STEP4
num = 1
3.times do|i|
num = num + i
end
puts num
#=>4
Points à lire ① ~~ Variable de bloc ~~ Les paramètres de bloc commencent à 0 et augmentent de 1. Dans l'exemple ci-dessus, on considère que "0" est remplacé la première semaine, "1" est remplacé la deuxième semaine et "2" est remplacé la troisième semaine.
(2) Les variables externes ont été réécrites.
Si vous l'écrivez soigneusement ↓ La 1ère semaine num + 0 => num est définie comme 1, donc "1 + 0" est assigné à num. 2ème semaine num + 1 => De ce qui précède, num est 1 et comme c'est la 2ème semaine, je passe à 1 et "1 + 1" est affecté à num. 3ème semaine num + 2 => De ce qui précède, num est 2, et comme c'est la 3e semaine, je passe à 2 et "2 + 2" est attribué à num.
En ce qui concerne le traitement itératif, c'est un contenu que vous apprenez à programmer et à apprendre à un stade précoce, et même si vous pensez le comprendre, vous ne vous souvenez peut-être pas des détails, alors profitez-en pour le revoir.
Recommended Posts