Control Flow

ArcScript uses indentation to define code blocks for control flow statements, similar to Python.

If-Else Statements

Use if and else for conditional logic.

ArcScript:

age = 20
if age >= 18
    print("Adult")
else
    print("Minor")

JavaScript Output:

let age = 20;
if (age >= 18) {
    console.log("Adult");
}
else {
    console.log("Minor");
}

While Loops

The while loop executes a block of code as long as a specified condition is true.

ArcScript:

counter = 0
while counter < 3
    print(counter)
    counter = counter + 1

JavaScript Output:

let counter = 0;
while (counter < 3) {
    console.log(counter);
    counter = counter + 1;
}

For Loops

ArcScript provides two types of for loops: one for iterating over collections and another for numeric ranges.

Looping over an Iterable

This is equivalent to a for...of loop in JavaScript.

ArcScript:

items = grabAll ".item-class"
for item in items
    print(item)

JavaScript Output:

let items = document.querySelectorAll(".item-class");
for (let item of items) {
    console.log(item);
}

Numeric Range Loops

This is a powerful feature for creating traditional for loops with a simpler syntax.

Form 1: ``for i in [end]`` (starts at 0, increments by 1)

for i in [5]
    print(i) # Prints 0, 1, 2, 3, 4
for (let i = 0; i < 5; i++) {
    console.log(i);
}

Form 2: ``for i in [start, end]`` (increments or decrements by 1)

# Counts up
for i in [3, 7]
    print(i) # Prints 3, 4, 5, 6

# Counts down
for i in [10, 5]
    print(i) # Prints 10, 9, 8, 7, 6
// Counts up
for (let i = 3; i < 7; i++) {
    console.log(i);
}

// Counts down
for (let i = 10; i > 5; i--) {
    console.log(i);
}

Form 3: ``for i in [start, end, step]`` (increments or decrements by a step value)

# Counts down by 2
for i in [10, 0, 2]
    print(i) # Prints 10, 8, 6, 4, 2
for (let i = 10; i > 0; i -= 2) {
    console.log(i);
}