Loop nur ausführen wenn Index ungerade ist

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Loop nur ausführen wenn Index ungerade ist

Re: Loop nur ausführen wenn Index ungerade ist

Post by nacken012 » 26 Jan 2022, 23:52

vielen lieben Dank

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)

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 ?

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)

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.

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!
}

Re: Loop nur ausführen wenn Index ungerade ist

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)

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
}

Top