ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 10 Sep 2002, 18:56 
Offline
Nuby

Registriert: 10 Sep 2002, 18:50
Beiträge: 4
Hi,

hier ist ja ziemlich viel los ;)
Ich hoffe mal mir kann trotzdem jemand helfen, da ich erst seit gestern Ruby benutze.
Bei dem folgenden Code-Schnipsel wird immer das "else" des case-Blocks ausgeführt, auch wenn ich 1,2,3 oder 4 tatsächlich eingebe:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

userchoice = STDIN.getc

case userchoice
when 1 then # <-- auch schon mit " " um die zahl jeweils probiert....
print "\nDISPLAY\n"
when 2 then
print "\nSEARCH\n"
when 3 then
print "\nADD\n"
when 4 then
print "\nREMOVE\n"
else
print "\nbad option!\n"
end #case



Woran könnte das liegen?


>> EDIT
Habe es schon herausgefunden...
Hiermit klappt es:



1
2
3

userchoice = STDIN.gets
userchoice.chop!


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 12 Sep 2002, 17:55 
Offline
Meister

Registriert: 25 Jun 2002, 20:39
Beiträge: 276
Wohnort: Hamburg
Der Fehler liegt in getc.
getc liefert dir nur den Zeichecode zurück. Mach mal print userchoice nach dem STDIN, dann wirst du es sehen.

Das Beispiel geht nun ->



1
2
3
4
5
6
7
8
userchoice = STDIN.gets
case userchoice.to_i
when 1 then print "\nDISPLAY\n"
when 2 then print "\nSEARCH\n"
when 3 then print "\nADD\n"
when 4 then print "\nREMOVE\n"
else print "\nbad option!\n"
end #case


Ich habe die methode gets benutzt. Die liefert einen String der Standarteingabezurück .
Dazu habe ich die Methode to_i benutzt um den String
in ein Integer umzuwandeln.


Gruß, leobm


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 14 Nov 2002, 22:07 
Offline
Nuby

Registriert: 10 Sep 2002, 18:50
Beiträge: 4
Hatte es wie am edit zu sehen ist schon gelöst.
Trotzdem danke :)


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: