Verschaltelung in Blitzbasic

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Nuber

Betreff: Verschaltelung in Blitzbasic

BeitragMo, Sep 08, 2008 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Evil or Very Mad

Ich habe ein Problem mit Blitz Max. Allerdings ist das Problem in veränderter Form schon mit Blitz 2d aufgetreten.

Ich habe eine funktionierende Funktion.
Innherhalb dieser Funktion will ich jetzt eine zusätztliche if-Abfrage in eine For-Next-Schleife
einbauen. Allerdings ergibt sich jetzt jedes mal ein Next-without-for-Error. Die Endmarkierungen (Endif)
habe ich schon geprüft, allerdings gibt es "weiter oben" schon eine if-Abfrage.
Hat die Demo eine Restriktion oder gibt es da Sprachbarrieren, die ich nicht kenne?

Vielleicht hatte ja jdm. schon mal ein ähnliches Problem und kann und will helfen?

robotx

BeitragMo, Sep 08, 2008 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Einsatz für die magische Zauberkugel?

Poste doch mal die Funktion.

mfg robotx
www.botbomb.robotzgames.de
www.robotzgames.de

Abrexxes

Betreff: Re: Verschaltelung in Blitzbasic

BeitragMo, Sep 08, 2008 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Nuber hat Folgendes geschrieben:

Ich habe eine funktionierende Funktion.


Das ist doch schon mal was, hat nicht jeder.

Was denn Rest angeht brauchts du kein Endif wenn allles in einer Zeile steht, zb:

Code: [AUSKLAPPEN]
If Glas = voll AND Glas = Hand Ausschütten() : Neufüllen()


Ansonsten MUSS ein Endif gesetzt werden
Code: [AUSKLAPPEN]

If Glas = Hand
If Glas = Voll
Ausschütten()
Neufüllen()
Endif
Endif

Ansonsten, Kristallkugel.
 

Nuber

Betreff: so sieht das gerade aus...

BeitragMo, Sep 08, 2008 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Function CheckData2 ()
Steps: Int = 0
For i = 1 To 630
temp1:Int = 0
temp2:Int = 0

Plot i,200
If Kurven [i,1]>=Kurven[i+9,1] Then
temp1 = Kurven [i,1]-Kurven [i+9,1]
Else
temp1 = Kurven [i+9,1] - Kurven [i,1]
EndIf

For j = 1 To 320

'


If Oberflaeche [j,1]> Oberflaeche [j+9,1] Then
temp2 = Oberflaeche [j,1] - Oberflaeche [j+9,1]
Else
temp2 = Oberflaeche [j+9,1] - Oberflaeche [j,1]
If temp2 = 0 Then
Next
Endif
EndIf
Print "Vergleiche Werte"+ " "+temp1 +" "+temp2
If temp1 = temp2 Then

For z = 1 To 9
Plot i+z,Kurven [i+z,1]+(480-Oberflaeche[j,1])
Flip
WaitMouse ()
Exit
Next

Else
EndIf
If Steps = 10 Then
WaitMouse ()
Steps = 0
Else Steps:+1
EndIf


'EndIf
Next


Next

End Function
 

Nuber

Betreff: der Fehler...

BeitragMo, Sep 08, 2008 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
kommt, seit es die Zeile if temp2 = 0 ff. gibt.

Smily

BeitragMo, Sep 08, 2008 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Formatier deinen code mal ordentlich, dann wirst du den Fehler finden Wink

Wenn man mit tabs und einrückung arbeitet ist der code wesentlich übersichtlicher, und solche fehler, wie du ihn gemacht hast kommen nicht vor:

Code: [AUSKLAPPEN]
Function CheckData2 ()
  Steps: Int = 0
  For i = 1 To 630
    temp1:Int = 0
    temp2:Int = 0

    Plot i,200
    If Kurven [i,1]>=Kurven[i+9,1] Then
      temp1 = Kurven [i,1]-Kurven [i+9,1]
    Else
      temp1 = Kurven [i+9,1] - Kurven [i,1]
    EndIf

    For j = 1 To 320
        If Oberflaeche [j,1]> Oberflaeche [j+9,1] Then
             temp2 = Oberflaeche [j,1] - Oberflaeche [j+9,1]
        Else
             temp2 = Oberflaeche [j+9,1] - Oberflaeche [j,1]
             If temp2 = 0 Then
    Next  ' <--- ????
.....
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

Nuber

Betreff: Falls Du das End if meinst

BeitragMo, Sep 08, 2008 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
was 2 Zeilen zu weit unten steht, dürfte das nicht das Problem sein.

Ich hatte schon verschiedenes getestet...

Sonst bin ich mit der Formatierung meines Codes nicht sehr unzufrieden.
 

Nuber

Betreff: Ach daS meinst Du!

BeitragMo, Sep 08, 2008 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kommt von Copy und Paste!

Natürlich habe ich Einrückungen, sonst wird man ja doof. Die sind nur
auf dem Weg ins Internet verloren gegangen.

hamZta

Administrator

BeitragMo, Sep 08, 2008 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich fordere dich hiermit auf Doppelposts zu unterlassen, Nuber.
Wenn du etwas hinzuzufügen hast kannst du deine Beiträge editieren.

hamZta
Blog.

Artemis

Betreff: Re: Ach daS meinst Du!

BeitragMo, Sep 08, 2008 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Nuber hat Folgendes geschrieben:
Das kommt von Copy und Paste!

Natürlich habe ich Einrückungen, sonst wird man ja doof. Die sind nur
auf dem Weg ins Internet verloren gegangen.

Für so etwas gibt es Code-Tags.

Außerdem hat Smily dir den Fehler schon gezeigt.
 

Nuber

Betreff: ' das ist ja nur nen Rem

BeitragMo, Sep 08, 2008 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Das war nicht der Fehler - lol!

Smily

BeitragMo, Sep 08, 2008 21:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Nuber hat Folgendes geschrieben:
Das war nicht der Fehler - lol!

doch

und nun lese bitte die grundlagentuts von www.robsite.de
Ist zwar für blitzbasic, aber es geht auch um die basics, die allgemeingültig sind.

Übrigens: Ich wäre die sehr verbunden, wenn du in den Titel bei Antworten keine Sinnlosen zeilen reinschreibst. Am besten du lässt es einfach leer
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
  • Zuletzt bearbeitet von Smily am Mo, Sep 08, 2008 22:05, insgesamt 2-mal bearbeitet

mahe

BeitragMo, Sep 08, 2008 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn Du eine Schleife vorzeitig beenden möchtest bzw. den nächsten Durchlauf direkt anstoßen möchtest darfst Du das nicht durch ein "next" in einer Bedingung machen.
Dazu musst Du "Exit" bzw. "Continue" verwenden.
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group