Schrift
[thread]8688[/thread]

eingabeaufforderung

Leser: 1


<< >> 4 Einträge, 1 Seite
pktm
 2007-01-26 14:45
#73733 #73733
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Du musst eine while() - Schleife verwnden, die so lange läuft wie man etwas eingibt. Außerdem musst du eine Abbruchbedingung einbauen, weil die Schleife sonst nie auffhört.
Das ganze sähe in etwa so aus:
Code: (dl )
1
2
3
4
5
6
7
8
while( my $zeile = <STDIN> ) { # solange einlesen, wie was eingegeben wird
chomp $zeile;
if( $zeile eq "WortZumAbbrechen" ) {
last; # brich ab
}else{
# dein Rechner hier :)
}
}


Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
Gast Gast
 2007-01-26 14:39
#73734 #73734
moin miteinander :>

fange an perl zu programmieren, und jetzt bin ich an einem kleinen taschenrechner dran.

Quote
chomp($zahl1 = <STDIN>);
$op = <STDIN>;
$zahl2 = <STDIN>;
if ($op = '+') {
$addition = $zahl1 + $zahl2;
print $addition;
}


und das sieth ja jetzt so aus:
Zahl 1 [ENTER]
Operationszeichen [ENTER]
Zahl 2 [ENTER]
Ergebnis

was muss ich beim oben stehenden code abändern, damit ich meine rechnung wie folgt eingeben kann:

Zahl1OperationszeichenZahl2
Ergebnis


sobald dann das ergebnis da ist, kehrt die eingabeaufforderung wieder zum anfang zurück:
Code: (dl )
1
2
3
4
5
6
7
8
Bitte geben sie die Zahlen inkl. Operationszeichen ein.
Example: 2+2; 2-2; 2*2; 2/2

2
+
5
[b]7
D:\Examples>[/b]

wie kann ich das verhindern?


danke,

ak39n
pq
 2007-01-26 17:09
#73735 #73735
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
das hat nix mit CGI zu tun - *verschieb*
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Dubu
 2007-01-27 03:47
#73736 #73736
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Guest,26.01.2007, 13:39]
Quote
if ($op = '+') {
[/quote]
Das ist nicht korrekt. Hier wird $op der Inhalt '+' zugewiesen und kein Vergleich durchgeführt.
Auf dieses Problem hätte dich Perl hingewiesen, wenn du Warnungen eingeschaltet hättest, was man immer machen sollte (use warnings im Code).

Du möchtest einen String-Vergleich:
Code: (dl )
if ($op eq '+') { 

Das würde aber bei deinem Programm auch noch nicht richtig funktionieren, weil weiter oben beim Einlesen von $op das chomp() fehlt und daher an $op noch ein Zeilenende hängt.\n\n

<!--EDIT|Dubu|1169862481-->
<< >> 4 Einträge, 1 Seite



View all threads created 2007-01-26 14:45.