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ß
Please also mark the comments that contributed to the solution of the article
Content-Key: 332731
Url: https://administrator.de/contentid/332731
Printed on: September 30, 2023 at 22:09 o'clock
10 Comments
Latest comment
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