Ausgeführt, wenn die Anweisung in der Schleife, nur einmal
Einfach nur neugierig, ob das möglich ist.
Betrachten Sie folgenden code:
boolean firstRow = true;
while{row = result.next())
{
if(firstRow)
{
firstRow = false;
//do some setup
}
//do stuff
}
Seine pseudo-code und die Frage ist allgemein nicht zu einer bestimmten Programmiersprache.
Meine Frage: ist es möglich, code zu schreiben, der verhält sich genau gleich, aber ohne Verwendung von zusätzlichen Variablen (in diesem Fall "firstRow"). In einer FOR Schleife es ist möglich, zu überprüfen, counter-variable den Wert, sondern lässt lassen Schleifen aus dieser Frage.
InformationsquelleAutor Keios | 2011-01-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, dein setup, bevor Sie beginnen, die Schleife und ändern Sie es in eine do..while. Zum Beispiel:
Ohne eine weitere variable zu verfolgen, ich glaube nicht, dass das möglich ist. Müssen Sie in irgendeiner Weise zu differenzieren Zustand und ohne bekannt werden etwas über Ihre Daten - Variablen (bool, Zähler, was auch immer) ist wahrscheinlich der einzige Weg, das zu tun. Gegeben, dass Sie sich unterscheiden "setup" von "Zeug", es ist mir nicht klar, warum würden Sie wollen, um es so zu machen.
Sie haben einen guten praktischen Grund? "Ich würde wie zu tun, es auf diese Weise" ist kein gültiges argument zur Ablehnung einer einfacheren Lösung.
Hmmm. Dies ist funktional äquivalent zu mir. Ich denke, der einzige Unterschied ist ich Handel die Trennung der Prüfung und die Zuordnung für die nicht zu verschachteln, wird die gesamte Schleife in einem
if
überprüfen. Sowieso, Leute, die geben die gleiche Antwort wie ich erhalten automatisch +1 (aus offensichtlichen Genie 🙂 )Nur der Grund ist, dass ich die get-Parameter für das setup aus "Zeile" variable.
InformationsquelleAutor kvista
Gut, es gibt einige Optionen. Die erste wäre, sich zu bewegen die "setup" code außerhalb der Schleife. Wenn Sie nicht kümmern, dies würde dazu führen, das setup zu passieren, auch wenn Sie nie Durchlaufen, dass ist wahrscheinlich die beste option. Wenn Sie tun interessieren, könnte man hinzufügen, der loop-Bedingung in den if-check.
Anderen wäre die Schleife so einfach wie möglich und Vertrauen Sie Ihrem compiler optimizer zu tun, das "abrollen" wie oben beschrieben. Es wird wahrscheinlich, wenn Sie den Optimierungs-Optionen, hoch genug ist.
InformationsquelleAutor T.E.D.
InformationsquelleAutor Roland T. from V.