![]() |
Case...of Schleifenproblem... 1...[Varbiable]
Nun habe ich ein letztes Problem vor der "Vollendung" gefunden... es handelt sich um ein Programm wo ich die maximalen Eingabeversuche per Optionen festlegen lassen möchte...
Erstmal auch ein recht herzlichen Dank an die, die mir geholfen haben ! Das Problem ist ich habe es mit einer case a of Schleife gemacht... :
Delphi-Quellcode:
case a of
0: begin [...] end; 1..maxver: // Hier soll er von der 1 Eingabe bis zur letzten (der der maximalen Versuche) gehen... 1..15 geht wunderbar, jedoch meckert er wenn ich 1..VARIABLE hintuh... "Constant expression expected"... Was kann man da tuhen ? begin if Edit2.Text=deutsch[x] then begin [...] end else begin [...] end end; end; end; |
Re: Case...of Schleifenproblem... 1...[Varbiable]
Bei der verwendung von Case musst kannst du keine Variablen benutzen, da musst du dann eine if-Abfrage benutzen.
|
Re: Case...of Schleifenproblem... 1...[Varbiable]
So ich habs jetzt mal veruscht...
Also so sahs vorher aus, ging wunderbar, aber es kamen halt 100 Versuche (1..100) und ich wollte ja ein maximum einstellen...
Delphi-Quellcode:
So jetzt für die die das selbe Problem haben und das hier per SuFu gefunden haben, das wäre die richtige Lösung gewesen :
case a of
0: begin [...] end; 1..100: begin if Edit2.Text=deutsch[x] then begin [...] end else begin [...] end end; end; end;
Delphi-Quellcode:
Ich glaub ich hab heute mein "Dankesagen Vorrat schon aufgebraucht... trotzdem ein DANKE !
case a of
0: begin [...] end; 1..100: begin if a < maxver then begin if Edit2.Text=deutsch[x] then begin [...] end else begin [...] end end else begin ShowMessage('Maximale Versuche überschritten'); end end; end; end; |
Re: Case...of Schleifenproblem... 1...[Varbiable]
Ich glaube du hast nicht ganz verstande, was case macht.
Mit Case überprüfst du, welchen Wert a hat, ist der Wert 0, springt er bei 0 rein, liegt der Wert im Bereich von 1..100 springt er in diesen Bereich. Den Rest ignoriert er. Deine erste Version ist doch wunderbar, oder habe ich dich falsch verstanden? Falls ja, erklär mir bitte nochmal was du bezwecken möchtest. |
Re: Case...of Schleifenproblem... 1...[Varbiable]
Zitat:
Nachdem ihm z.B. 15 Fragen gestellt wurden, sollte eine Auswertung kommen (dies mach ich aber erst noch später) wieviele Fehler derjenige hat usw.. Würde ich 1..100 machen würde er ja 100 Wörter gefragt werden... daher wollte ich mit der Caseschleife 1..maxver erreichen das er immernur in die Schleife reingeht, bis die maximale Anzahl an Übersetzungen erreicht sind. :dp: EDIT:// ich hab das 1..100 in richtigen Sourcecode in 1..1000000 umgeändert, sodass er immerwieder reinspringt... aber durch die if Bedingung sagt er dann wenn a kleiner ist als die maxver ! |
Re: Case...of Schleifenproblem... 1...[Varbiable]
Es gibt keine Case-Schleife :warn:
Case ist eine einmalige Abfrage, zu vergleichen mit If.
Delphi-Quellcode:
Hier wird genau EINMAL überprüft, welchen Wert i hat. Alle anderen Einträge werden einfach übersprungen.
i := 7; //i hat den Wert 7
Case i of // Alles bis 7 wird übersprungen 1:ShowMessage('1'); // | 2:ShowMessage('2'); // | 3:ShowMessage('3'); // | 4:ShowMessage('4'); // | 5:ShowMessage('5'); // | 6:ShowMessage('6'); // | 7:ShowMessage('7'); //<--| Und dann wird alles bis zum end übersprungen 8:ShowMessage('8'); // | 9:ShowMessage('9'); // | end; //<-------------------| Mfg |
Re: Case...of Schleifenproblem... 1...[Varbiable]
Dann überprüfe a, vor der Case-Abfrage !
Und springe in die Case Schleife nur dann rein, wenn der Wert kleiner deines Max-Wertes liegt. |
Re: Case...of Schleifenproblem... 1...[Varbiable]
Ich verstehe die Logik nicht so ganz. Lass den User entscheiden, wie viele Fragen er haben will und merk Dir das in einer Variablen. In einer weiteren Variablen merkst Du Dir, wie viele Fragen bereits abgearbeitet wurden. Nun musst Du diese beiden doch nur noch vergleichen.
|
Re: Case...of Schleifenproblem... 1...[Varbiable]
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:22 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