Zufallszahlen...funzt nicht so wie soll *grummel*
ole
- asp.net
0 Slyh0 Carsten Seifert0 Carsten0 Carsten Seifert0 ole
0 ole
hi
ich hab mir vorgenommen für ein rollenspiel (pen & paper) einen charaktergenerator zu schreiben...in ASP. ich hab mir nämlich gedacht "so lernst dus spielerisch"...aber pustekuchen...ich bin eigentlich nur am frusten...naja, fast ;)
ich versuche nun eine kleine abfrage mir einem zufallszahlengenerator zu verbinden mit folgendem script:
<html>
<head>
<title></title>
</head>
<body>
<form method="post">
<input type="text" name="rasse">
<input type="submit" value="Rasse wählen">
</form>
<%
rasse = Request.Form("rasse")
if (rasse ="") then
if (rasse = "mensch") then
von = 3
bis = 18
%>
<p>Hier ist der Wert :</p>
<%
for x = 1 to 1
Response.Write Wuerfel(von,bis) & " "
next
else
%>
Geben sie "mensch" ein
<%
end if
end if
function Wuerfel(von,bis)
randomize
Wuerfel = Fix(rnd*(bis-von+1)+von)
end function
%>
</body>
</html>
mein problem ist nun, das ich es nicht hinbekomme eine ausgabe nach der eingabe zu kriegen. entweder bekomme ich die ausgabe bevor ich was eingebe oder garnicht :(.
gedacht ist es so:
wo liegt mein denk-/schreibfehler?
alles liebe
ole
(8-)>
Hallo,
ich habe zwar keinen blassen Schimmer von ASP, versuche aber einfach mal mein
Glück. :-)
Dein Fehler liegt vemutlich hier:
if (rasse ="") then
if (rasse = "mensch") then
Du fragst erst ab, ob rasse leer ist (rasse = "") und danach fragst du ab,
ob rasse gleich "mensch" ist (rasse = "mensch"). Das wird wohl nie passieren.
Dein erstes if sollte vermutlich eher abfragen, ob rasse NICHT leer ist,
und dann erst die zweite if-Anweisung ausführen, die abprüft, ob rasse
gleich mensch ist. Dann dürfte es wie gewünscht funktionieren, denke ich.
Gruß
Slyh
PS: Kleiner Tip: Du solltest deinen Code besser formatieren, also Code inner-
halb eines Blockes immer Einrücken und dergleichen.
if (rasse ="") then
if (rasse = "mensch") then
Ich kenn mich zwar mit asp nicht aus, abe in vielen Programmiersprachen ist " = " ein ZUWEISUNGSoperator
während " == " ein VERGLEICHSoperator ist
if (rasse ="") ist somit immer true, da der Variablen rasse erfolgreich der wert "" zugewiesen wurde.
Wie gesagt, ich weiß nicht, ob das auch für ASP gilt.
Hallo Carsten!
Ich kenn mich zwar mit asp nicht aus,...
Hey, dann sind wir jetzt schon drei!
if (rasse ="") ist somit immer true, da der Variablen rasse erfolgreich der wert "" zugewiesen wurde.
Nicht ganz: Es wird der zugewiesene Wert auf true/false geprüft. Was dabei rauskommt ist je nach Sprache verschieden:
In C z.b. ist "" ein Zeiger auf einen Leerstring, und der ist nicht null, also wahr (dort ist es also so, wie du sagtest).
In PHP dagegen wird "" in einen boolean konvertiert und ein Leerstring gilt dabei als false, dergleichen in Javascript.
Gruss,
Carsten
Hallo Carsten ;-)
Stimmt, du hast recht, hab ich übersehen.
@ole: Wie dem auch sei, wenn ASP einen Unterschied zwischen = und == macht, dann bewirken die "if"-Abfragen sicher nicht das was du willst.
mit "if (rasse == "mensch") müsste es klappen.
hi
ASP mag kein == :(
trotzdem danke für die hilfe
alles liebe
ole
(8-)>
hi
danke, das mit dem NOT hat mir gefehlt *blindbin*
allerdings hab ich noch keinen plan davon wie ich es hinbekomme, das erst nach dem button eine wertausgabe erfolg *kopfkratz*
alles liebe
ole
(8-)>
hallo ole,
vielleicht solltest du die Abfrage deiner Bedingungen nicht ineinander verschachteln. Also:
if (rasse !="mensch") then
...
endif
%>
<p>Hier ist der Wert</p>
<%
<if (rasse ="mensch") then
...
endif
%>
<p>Geben Sie "mensch" ein</p>
Außerdem fehlte das <p>-Tag vor dem tollen Satz zur Eingabeaufforderung.
Christoph S.