Jump to content

Best Syntax with OR

Recommended Posts

Hi, what is the best practice to write the next code in autoit (or any language)?:

```for \$ii = 1 To 81

;1+6*0 , 1+6*1, 1+6*2, 1+6*3, ...
If \$ii = 1 or \$ii = 7 or \$ii = 13 or \$ii = 19 or \$ii = 25 or \$ii = 31 or \$ii = 37 or \$ii = 43 _
or \$ii = 49 or \$ii = 55 or \$ii = 61 or \$ii = 67 or \$ii = 73 or \$ii = 79 Then
EndIf

;any numbers
If \$ii = 1 or \$ii = 24 or \$ii = 37 or \$ii = 76 Then
EndIf

Next```

I would like to know if is possible to use an array to simplify the sintax.

Something that looks like this

```\$arr=[1,7,13,19,25]

for \$ii = 1 To 81

If \$ii = \$arr Then
EndIf

Next```

Of course I could use a 2nd loop to do this:

```\$arr=[1,7,13,19,25]

for \$ii = 1 To 81

for \$jj = 0 To 4
If \$ii = \$arr[\$jj] Then
EndIf
Next

Next```

But I want to know which is the clearest and simplest way to write it.

Share this post

Share on other sites

I forgot to ask explicitly if there is a better way to write each case:

1) 1+6*0 , 1+6*1, 1+6*2, 1+6*3, ...

2) any numbers

Share this post

Share on other sites

```Switch \$ii
Case 1, 7 .. 79
; Statements
Case Else
; Statements
EndSwitch```

Edited by water
• 1

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2018-12-03 - Version 1.4.11.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (2018-10-31 - Version 1.3.4.1) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:

ADO - Wiki

Share this post

Share on other sites

Thanks that make it clearer

Share this post

Share on other sites

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2018-12-03 - Version 1.4.11.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (2018-10-31 - Version 1.3.4.1) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:

ADO - Wiki

Share this post

Share on other sites

The OP doesn't want all numbers from 7 to 79, just the multiples of 6.

I was just to lazy to type all numbers

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2018-12-03 - Version 1.4.11.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (2018-10-31 - Version 1.3.4.1) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:

ADO - Wiki

Share this post

Share on other sites

Oh, I see, did not read the OPs question properly, sorry  ...

```For \$ii = 1 To 81
If Not Mod(\$ii - 1, 6) Then
ConsoleWrite("+" & @TAB & \$ii & @CRLF)
Else
ConsoleWrite("-" & @TAB & \$ii & @CRLF)
EndIf
Next```
• 1

OS: Win10-1803 - 64bit - German, AutoIt Version: 3.3.14.5, AutoIt Editor: SciTE, Website: http://www.funk.eu, My unsolved Questions: Get default Window Size and Position, Rotate display by 270 degrees, Get Systray Icons, ...

Share this post

Share on other sites

I didnt know about the Mod function before, thats perfect for the job
Anyway since the numbers for switch syntax are not a lot (in this case), I will use switch, but Mod will be a nice function for other things.

Thanks

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

• Wiki