Ce n'est pas un gros problème d'écrire du code en Ruby, mais je l'ai négligé et je suis devenu accro.
Je pensais que je savais que get avait un code de saut de ligne à la fin et gets.chomp n'avait pas de code de saut de ligne, mais ...
input = gets
array=['cat','cat1','cat2','cat3','dog','tomcat']
array.each do |a|
puts a.include?(input)
end
Ensuite, tous reviennent avec faux. Comme je l'ai écrit au début, gets a un code de saut de ligne à la fin, donc la méthode include? Recherche une correspondance avec le code de saut de ligne cat plus, donc ce sera faux.
input = gets
array=[]
for i in 1..6 do
array_input=gets
array << array_input
end
array.each do |a|
puts a.include?(input)
end
Si vous entrez cat, cat1, ... et les mêmes éléments que le tableau de code ci-dessus dans l'ordre, seuls le premier et le dernier (cat et tomcat) seront renvoyés comme true. (J'étais accro à ça) Cela signifie que si la valeur entrée dans obtient dans la partie qui est retournée dans l'instruction for se termine par cat, le code de saut de ligne sera inséré à la fin, donc il correspondra. Tout ce qui ne se termine pas par un chat est reconnu comme incohérent.
Si vous définissez input = gets.chomp, le code de saut de ligne ne sera pas inclus dans la première chaîne de caractères d'entrée, de sorte que le résultat attendu sera obtenu.
input = gets.chomp
array=['cat','cat1','cat2','cat3','dog','tomcat']
array.each do |a|
puts a.include?(input)
end
Recommended Posts