La déclaration case


#1

Bonjour j'ai un petit soucis une fois valider j'ai toujours la même erreur qui reviens, Oups, merci de réessayer. Il semble que votre instruction case n'affiche pas 'Erreur!' quand saisie est erronée. je ne sais d'ou cela viens :confused:

films = {
Memento: 3,
Primer: 4,
Ishtar: 1
}

puts "Que voulez-vous faire ?"
puts "-- Entrez 'ajout' pour ajouter un film."
puts "-- Entrez 'maj' pour mettre à jour un film."
puts "-- Entrez 'affiche' pour afficher tous les films."
puts "-- Entrez 'suppr' pour supprimer un film."

choix = gets.chomp.downcase
case choix
when 'ajout'
puts "Quel film voulez-vous ajouter ?"
titre = gets.chomp
if films[titre.to_sym].nil?
puts "Quelle note voulez-vous lui attribuer ? (entrer un chiffre entre 0 et 4.)"
note = gets.chomp
films[titre.to_sym] = note.to_i
puts "Vous avez donné une note de #{note} au film #{titre}."
else
puts "Ce film existe déjà ! Sa note est #{films[titre.to_sym]}."
end
when 'maj'
puts "Quel film voulez-vous mettre à jour ?"
titre = gets.chomp
if films[titre.to_sym].nil?
puts "Film introuvable !"
else
puts "Quelle nouvelle note voulez-vous lui attribuer ? (entrer un chiffre entre 0 et 4.)"
note = gets.chomp
films[titre.to_sym] = note.to_i
puts "#{titre} a bien été mis à jour, sa note est désormais #{note}."
end
when 'affiche'
films.each do |film, note|
puts "#{film}: #{note}"
end
when 'suppr'
puts "Quel film voulez-vous supprimer ?"
titre = gets.chomp
if films[titre.to_sym].nil?
puts "Film introuvable !"
else
films.delete(titre.to_sym)
puts "Le film #{titre} a été supprimé."
end
else
puts "Désolé, je ne vous ai pas compris."
end

case choix
when "ajouter"
puts "Ajouté!"
when "modifier"
puts "Modifié!"
when "afficher"
puts "Films!"
when "supprimer"
puts "Supprimé!"
else
puts "Erreur!"
end


#2

as tu résolu ton problème ?

je rencontre le même :confused:


#3

Bizarre quand je rentre ajouter, il me répond bien "ajouté !" mais j'ai quand même le message d'erreur : " Oups, merci de réessayer. Il semble que votre instruction case n'affiche pas 'Ajouté !' quand saisie == 'ajouter'."

Donc je pense avoir le même problème, savez vous comment faire ?


#4

salut,
j'ai aussi le meme problème, toujours en rechercher !!
si ok je vous fais signe ;=)


#5

J'étais aussi coincée. Il s'est avéré que j'avais demandé à écrire "Ajouté!" alors qu'il faut mettre "Ajouté !" (avec un espace entre é et !" ...
Dans votre cas, je pense qu'il manque la majuscule à ajouté


#6

j'ai trouver le code si vous voulez

films = {
Memento: 3,
Primer: 4,
Ishtar: 1
}

puts "Que voulez-vous faire ?"
puts "-- Entrez 'ajouter' pour ajouter un film."
puts "-- Entrez 'modifier' pour mettre à jour un film."
puts "-- Entrez 'afficher' pour afficher tous les films."
puts "-- Entrez 'supprimer' pour supprimer un film."

choix = gets.chomp.downcase
case choix
when 'ajout'
puts "Quel film voulez-vous ajouter ?"
titre = gets.chomp
if films[titre.to_sym].nil?
puts "Quelle note voulez-vous lui attribuer ? (entrer un chiffre entre 0 et 4.)"
note = gets.chomp
films[titre.to_sym] = note.to_i
puts "Vous avez donné une note de #{note} au film #{titre}."
else
puts "Ce film existe déjà ! Sa note est #{films[titre.to_sym]}."
end
when 'modifier'
puts "Quel film voulez-vous mettre à jour ?"
titre = gets.chomp
if films[titre.to_sym].nil?
puts "Film introuvable !"
else
puts "Quelle nouvelle note voulez-vous lui attribuer ? (entrer un chiffre entre 0 et 4.)"
note = gets.chomp
films[titre.to_sym] = note.to_i
puts "#{titre} a bien été mis à jour, sa note est désormais #{note}."
end
when 'afficher'
films.each do |film, note|
puts "#{film}: #{note}"
end
when 'supprimer'
puts "Quel film voulez-vous supprimer ?"
titre = gets.chomp
if films[titre.to_sym].nil?
puts "Film introuvable !"
else
films.delete(titre.to_sym)
puts "Le film #{titre} a été supprimé."
end
else
puts "Désolé, je ne vous ai pas compris."
end

case choix
when "ajouter"
puts "Ajouté !"
when "modifier"
puts "Modifié !"
when "afficher"
puts "Films !"
when "supprimer"
puts "Supprimé !"
else
puts "Erreur!"
end


#7

mille mercis, j'avais la même erreur et j'aurais pu y passer des plombs avant de la trouver!


#8

Merci cyclem 35 ! idem c'était juste une histoire d'espace ça m'a pris des heures pfff ! voyons le bon côté de la chose c'est une bonne façon de mémoriser les 'case' !