Was bedeutet die Zeile 'if diff > 0 then dec(diff, step) else diff := 0;'?

Antwort vom

Die Zeile ```pascal if diff > 0 then dec(diff, step) else diff := 0; ``` bedeutet: - **Wenn** `diff` größer als 0 ist, **dann** wird von `diff` der Wert von `step` abgezogen (das macht `dec(diff, step)`). - **Sonst** (also wenn `diff` nicht größer als 0 ist), wird `diff` auf 0 gesetzt. **Wichtig:** `dec(diff, step)` verringert `diff` um den Wert von `step` (nicht nur um 1, sondern um so viel wie in `step` steht). **Deine Interpretation ist also nicht ganz korrekt:** Es wird nicht immer nur um 1 verringert, sondern um den Wert von `step`. Und es wird nicht gleichzeitig `diff` und `step` verringert, sondern nur `diff`. **Zusammengefasst:** Wenn `diff > 0`, dann wird `diff := diff - step` ausgeführt. Wenn nicht, dann wird `diff := 0` gesetzt.

Verwandte Fragen

Wo liegt der Fehler in 'If (or(Cells(i, 9) = "ÜS";Cells(i, 9) = "AS")) Then'?

Der Fehler liegt in der Syntax. In VBA (Visual Basic for Applications) gibt es keine Funktion or(), und die Bedingungen werden mit Or (ohne Klammern) verbunden. Außerdem verwendet VBA Kommas als...