Comment voulez-Vous Mettre 'obtient' Entrée Dans Un Tableau?
Ruby noob ici apprendre les ficelles du métier. Je suis actuellement ce tutoriel et je travaille sur cet exercice:
Nous allons écrire un programme qui nous le demande
entrez le nombre de mots que nous voulons (un
mot par ligne, en continuant jusqu'à ce que nous
appuyez simplement sur Entrée sur une ligne vide),
et puis qui répète les mots de retour
pour nous, dans l'ordre alphabétique.
Je suis ignorant l'ordre alphabétique de la partie, pour l'instant.
Voici mon code:
puts 'Hi, do you need something sorted?'
yn = gets.chomp
while yn != 'no'
puts 'What else?'
array = [gets]
yn = gets.chomp
end
puts 'Here\'s what you told me: ' +array.to_s
J'ai modifié un peu ce pour quelques heures. Pour empêcher mon ordinateur portable de la rupture due à un acte de frustration, je vais prendre une pause. Quelqu'un peut-il avec plus d'expérience, et peut-être plus de patience, de signaler mes erreurs?
Et un Javaist allé de l'avant et lui a donné quatre espace de mise en retrait. Il peut y avoir trop d'une bonne chose!
Ha. J'ai réellement faire de quatre espaces de moi-même la plupart du temps! (Non pas que je l'ai fait ici). Je fais deux espaces en HTML et c'est à ce sujet, généralement.
OriginalL'auteur RubyStn | 2011-03-08
Vous devez vous connecter pour publier un commentaire.
Garder à l'esprit que chaque fois que vous
gets
est une méthode qui demande à l'utilisateur d'entrée. Sur vos lignes:Vous êtes en train de demander pour l'entrée deux fois. Au lieu de cela, magasin de la saisie de l'utilisateur quelque part (comme le tableau, voir ci-dessous) et d'obtenir la valeur stockée plutôt que de demander à l'utilisateur deux fois.
De plus,
array = [gets]
remplace le tableau existant avec un tableau contenant un élément (l'entrée de l'utilisateur). Vous n'êtes jamais construction de saisie de l'utilisateur dans le tableau. Au lieu de cela, l'initialiser avant la boucle while et l'utilisation<<
dans la boucle:OriginalL'auteur Martin Gordon
Si vous avez de la difficulté à quelque chose, la première chose que vous devez faire est d'essayer quelque chose de plus simple.
Plutôt que de faire de
gets
et en boucle, juste essayer de faire un simplegets
.Alors je vais voir si
yn
était ce que j'attendais.La prochaine chose que je ferais est que, plutôt que de faire une boucle plusieurs fois, juste essayer une fois
Alors vous feriez espérons réaliser que
array
etyn
sont à la fois d'obtenir les commentaires, ce qui ne serait pas de bon sens.Pour plus de conseils sur la façon de déboguer du code Ruby, voir Comment déboguer des scripts Ruby?
OriginalL'auteur Andrew Grimm
J'ai eu le même problème. C'est là que j'ai fini (je pense qu'il répond à toutes les spécifications de la question):
OriginalL'auteur John Franklin
Le "<<" ajoute yn pour votre tableau. (La seule raison pour laquelle j'ai utilisé
print
est parce qu'il met le curseur à droite à côté du point d'interrogation au lieu de sur la ligne suivante. Aucune autre raison)OriginalL'auteur Charles Caldwell
OriginalL'auteur Eugene Kuzmenko
Une autre façon de lire "Tableaux" de la console pourrait être:
OriginalL'auteur Alfonso
voici comment je l'ai fait ce programme:
OriginalL'auteur Artem Grachev