PS: Suche "eleganteren" Code
Moin zusammen,
ich bin auf der Suche nach einem "eleganteren" Code (Powershell).
Es geht um folgendes: in einer Schleife muss eine Variable bei jedem 2. Durchlauf seinen Wert ändern. 3/1/3/1/3....
ich finde diesen Part irgendwie unschön
Jemand eine Idee wie man das "schöner" lösen kann?
Gruß
ich bin auf der Suche nach einem "eleganteren" Code (Powershell).
Es geht um folgendes: in einer Schleife muss eine Variable bei jedem 2. Durchlauf seinen Wert ändern. 3/1/3/1/3....
[int]$m = 3
for ($i=326; $i -ge 0; $i--){
...
if ($m -eq 1){$m=3}
else {$m=1}
}
ich finde diesen Part irgendwie unschön
if ($m -eq 1){$m=3}
else {$m=1}
Jemand eine Idee wie man das "schöner" lösen kann?
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 332731
Url: https://administrator.de/contentid/332731
Ausgedruckt am: 04.12.2024 um 08:12 Uhr
10 Kommentare
Neuester Kommentar
Moin,
du könntest ja ggf. schauen, ob dein $i ohne Rest durch 2 teilbar ist, wenn ja, dann eine 1, ansonsten eine 3 (bzw. umgekehrt)
Das wäre aber nach wie vor eine If-Schleife von nöten...
Mit der Funktion IEEERemainder() kommst du an den Rest dran...
Gruß
em-pie
du könntest ja ggf. schauen, ob dein $i ohne Rest durch 2 teilbar ist, wenn ja, dann eine 1, ansonsten eine 3 (bzw. umgekehrt)
Das wäre aber nach wie vor eine If-Schleife von nöten...
Mit der Funktion IEEERemainder() kommst du an den Rest dran...
Gruß
em-pie
Zitat von @Kraemer:
Sowas in der Art habe ich gesucht. Gleich mal gucken ob das funktionierte.
Das nutze ich auch immer um sowas abzukürzen.@{$true=3;$false=1}[$m -eq 1]
Ist eine Hashtable die je nach Ergebnis im Indexpart den jeweiligen Wert zurückliefert.
Leider gibt es so was wie in PHP oder c# wie (condition) ? True : False in PS nicht. Ansonsten kleine Function geht natürlich auch.
Gruß p.
An dieser Stelle sollte aber dennoch erwaehnt sein, dass die Suche nach einem ternaeren Operator in PowerShell ein im Netz intensivst ausdiskutiertes Thema ist. Siehe hier: Ternary operator in PowerShell. An dieser Stelle werden zwar einige interesseante (und elegante) Moeglichkeiten aufgezeigt, die IMHO schoenste und fuer alle am leichtesten leserliche Variante ist und bleibt dann aber doch ein normales if/then-statement.
Am besten gefaellt mir hierzu die Aussage von "fbehrens":
Ich sehe aber ein, dass es in Fragen zu Eleganz und Leserlichkeit selten ein definitives Richtig oder Falsch gibt.
Beste Gruesse
Dominique
Am besten gefaellt mir hierzu die Aussage von "fbehrens":
Everything else is incidental complexity and thus to be avoided.
Ich sehe aber ein, dass es in Fragen zu Eleganz und Leserlichkeit selten ein definitives Richtig oder Falsch gibt.
Beste Gruesse
Dominique