Loop nur ausführen wenn Index ungerade ist Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Loop nur ausführen wenn Index ungerade ist

Post by KHA » 21 Dec 2018, 09:03

Hi,
die Schleife soll dann ausgeführt werden, wenn A_index ungerade ist also (1-3-5 usw)
Wie kann ich das realisieren ?
Danke und Lg

Code: Select all

Colors = red,green,blue
Loop, parse, Colors, `,
{
    if A_Index = ungerade ;hier komme ich nicht weiter
    MsgBox, Ungerade
}

gregster
Posts: 9001
Joined: 30 Sep 2013, 06:48

Re: Loop nur ausführen wenn Index ungerade ist  Topic is solved

Post by gregster » 21 Dec 2018, 09:23

Zum Beispiel so...

Code: Select all

loop 10
{
	if Mod(a_index, 2)!=0
		msgbox % a_index
}
(https://autohotkey.com/docs/commands/Math.htm#Mod)

just me
Posts: 9451
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Loop nur ausführen wenn Index ungerade ist

Post by just me » 21 Dec 2018, 11:08

Moin,

im dualen bzw. binären Zahlensystem ist bei allen ungeraden Zahlen die niederwertigste Bitstelle (Bit 0) auf 1 gesetzt. Ihr Wert ist damit 1 * 2^0 = 1. Alle höheren Bitstellen liefern Potenzen von 2 oder 0, und damit gerade Werte. Im Binärsystem reicht deshalb für die Prüfung, ob ein Wert ungerade ist, ein einfaches If (Wert & 1):

Code: Select all

Loop 10 {
	If (A_Index & 1)
		MsgBox, %A_Index% ist ungerade!
}

KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Re: Loop nur ausführen wenn Index ungerade ist

Post by KHA » 21 Dec 2018, 13:22

Danke @gregster, jetzt kenne ich Modulo :)
@Just me vielen Dank auch an dich, dass mit Binär und Bit verstehe ich nicht wirklich, ist zu Hoch für mich.
Aber, man kann es sich gut merken und in der Praxis einfach umsetzen.

User avatar
LuckyJoe
Posts: 341
Joined: 02 Oct 2013, 09:52

Re: Loop nur ausführen wenn Index ungerade ist

Post by LuckyJoe » 22 Dec 2018, 02:47

If (A_Index & 1)
... oh wie schön! :bravo:
(man lernt nie aus)
Herzliche Grüße aus dem Rheinland
Lucky Joe

nacken012
Posts: 90
Joined: 22 Jul 2016, 14:39

Re: Loop nur ausführen wenn Index ungerade ist

Post by nacken012 » 26 Jan 2022, 23:01

so wirklich steige ich da auch nicht durch, was muss denn da stehen wenn es nur bei geraden Zahlen ( 2,4,6 usw..) was machen soll ?

gregster
Posts: 9001
Joined: 30 Sep 2013, 06:48

Re: Loop nur ausführen wenn Index ungerade ist

Post by gregster » 26 Jan 2022, 23:25

Zum Bleistift:

Code: Select all

loop 10
{
	if Mod(a_index, 2)=0
		msgbox % a_index
}
Oder auch
If !(A_Index & 1)

nacken012
Posts: 90
Joined: 22 Jul 2016, 14:39

Re: Loop nur ausführen wenn Index ungerade ist

Post by nacken012 » 26 Jan 2022, 23:52

vielen lieben Dank

Post Reply

Return to “Ich brauche Hilfe”