Return Problemchen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ozzi789

Betreff: Return Problemchen

BeitragDi, Okt 07, 2008 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Ich gerade n sau blödes problem
Ich versuch gerade in einer Function einen wert zurück zu geben, und das beispiel inner hilfe hab ich schon angegugt Confused


Code: [AUSKLAPPEN]

Graphics 300,200

t


While Not KeyHit(1)

Text 0,0,test
Flip
Wend



Function t()
test=6
Return test
End Function


Sollt doch funktionieren oda ? ><
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Okt 07, 2008 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Deine Function heißt
t()
und nicht
test()

Also entweder du benennst die Function um oder der Aufruf in Text 0,0,t
[BB2D | BB3D | BB+]

ozzi789

BeitragDi, Okt 07, 2008 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Funktion heist t und was zurück gegeben wird heist t , was is da falsch Confused
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
  • Zuletzt bearbeitet von ozzi789 am Di, Okt 07, 2008 21:36, insgesamt einmal bearbeitet
 

Fredko

BeitragDi, Okt 07, 2008 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Willst du die Variable bzw. deren Wert ausgeben? Dann sollte es Bla=t heißen. Zudem ist "test" eine lokale Variable, die nur in der Funktion benutzt wird. Wäre sie Global, würde es Funktionieren.

Edit: Ja, t gibt was zurück, aber test wird außerhalb der Funktion nur neu deklariert -> 0
!

darth

BeitragDi, Okt 07, 2008 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Kleine Erklärstunde:
Wenn du mit Return etwas zurückgibst, dann wird das nicht einfach so irgendwo hingespeichert - es sei denn du machst test global, aber das interessiert hier nicht. Wenn du den Return-Wert also verwenden willst, dann solltest du ihn zwischenspeichern...
Allgemein: Variabel = Term
so auch hier, die Funktion wirft einen Term zurück (hier halt nur eine Zahl, aber das reicht um ein Term zu sein -.-)
Also:
Code: [AUSKLAPPEN]
variabel=fnc()
while not keyhit(1)
 text 10,10,variabel
 flip 0 : cls
wend : end

function fnc()
 test=6
 return test
end function

Was geschieht da? in Variabel wird der Return-Wert der Funktion fnc() gespeichert. Wenn du diesen Wert nun weiterhin verwenden willst, ist er in variabel drin, du musst also diesen verwenden.
Die Variabel "test" ist nicht global und somit NUR innerhalb der Funktion definiert, wo du sie benutzt.
"fnc" ist der Name der Funktion und somit KEINE Variabel, kann also nicht als solche benutzt werden.

... sollte alles sein :/ hoffe es war verständlich.
Diese Signatur ist leer.

ozzi789

BeitragDi, Okt 07, 2008 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Das heist ich mus die Variable Global deklarieren ? Very Happy




edit :
ja es stimmt Razz

@darth
Danke viel mals für deine ausführliche erklärung, hat mir geholfen !!
*keks geb* (:
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Xeres

Moderator

BeitragDi, Okt 07, 2008 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du die Variable Global deklarierst, kannst du dir das Return doch vollkommen sparen... Der Sinn hinter Return ist, das man möglichst Globale Variablen für jeden kleinen Mist vermeiden kann.
Den Unterschied zwischen Funktionsaufruf und Variable kann doch so schwer nicht sein...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Okt 07, 2008 23:47
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Das Problem ist immer noch das die Function innerhalb der While Schleife nie aufgerufen wird! t<>Test
2. Wenn bei einer Function ein Wert zurückgeben werden soll dann müssen beim Aufruf Klammern gesetzt werden!
Code: [AUSKLAPPEN]
Graphics 300,200
While Not KeyHit(1)
   Text 0,0,test()
   Flip
Wend

Function test()
   t=6
   Return t
End Function
[BB2D | BB3D | BB+]

ozzi789

BeitragMi, Okt 08, 2008 0:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach jetz hats klick gemacht die klammern, habs schon mal so versucht halt ohne klammern, und dan kam ich auf den falschen weg ><'



thx für eure guten erklärungen und beispiele Smile
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group