![]() |
Bedingung bleibt unbeachtet
Hallo!
Ich habe ein ziemlich seltsames Problem mit meinem Programm: Ich habe einige Schleifen und darin eine 2 if-Abfragen. Nur ist es leider dem Programm wohl egal, ob die Bedingungen wahr sind, oder nicht. Es führt die folgenden Anweisungen nur manchmal aus. Hab es extra mal alles auseinandergefriemelt, zum tracen: Hier die Stelle im Programm:
Delphi-Quellcode:
Selbst wenn ich beim tracen genau vorher die Maus auf z.B. Sudoku[i,j] halte und er zeigt an "Sudoku[i,j] = 0" springt er manchmal trotzdem gleich zum end. Kennt jemand dieses Problem? Es wäre sehr nett wenn mir jemand helfen kann!
for k := 1 to 9 do for i := 1 to 9 do
begin save := 0; for j := 1 to 9 do begin if Sudoku[i,j] = 0 then // Diese hier! begin if Kandidaten[i,j,k] = true then // Und die! begin if save=0 then begin save:=j end else begin save:=-1; end; end; end; end; if save>=1 then begin Sudoku[i,save] := k; gesetzt := true; end; end; LiS |
Re: Bedingung bleibt unbeachtet
Hallo!
Hast dus schon mal mit dem "Auswerten/Ändern" Dialog versucht (Ctrl+F7 bzw Start -> Auswerten/Ändern)? Vielleicht ist der Wert wirklich anders als du denkst... ;) Grüße Faux |
Re: Bedingung bleibt unbeachtet
Werden die Bedigungen denn je erfüllt?
|
Re: Bedingung bleibt unbeachtet
Die Bedingungen sind ganz sicher manchmal erfüllt und die Werte sind auch so wie sie sein sollen. Daran kann es nicht liegen...
|
Re: Bedingung bleibt unbeachtet
Ich denke da kann Dir so einfach keiner helfen, wenn nicht überprüft werden kann, wie die Felder, die in den If ... then Zeilen angesprochen werden, gefüllt sind.
Stell doch mal das ganze Programm hier rein und beschreibe unter welchen Bedingungen der vermeintliche Fehler auftritt. Vielleicht findet sich jemand, der das testet...... |
Re: Bedingung bleibt unbeachtet
Bitte überprüfe doch mal beim tracen welchen wert j hat, wenn der einfach so zum end springt. ich vermute mal, j hat in diesem fall den wert 10 und deshalb springt er dann weg ... ;-)
cu |
Re: Bedingung bleibt unbeachtet
Gehe mal in die Projektoptionen=>Compiler und schalte die Optimierung aus. Denn wenn der Code optimiert wird, werden for-Schleifen auch manchmal in anderer Reihenfolge durchlaufen und das debuggen fällt schwer...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz