In [Arduino](https://www.ampheo.com/c/development-board-arduino), “control sentences” basically means control statements – the things that tell your code when and how often to run:
* if, else, else if
* switch
* for
* while, do…while
* plus helpers like break, continue, return
Arduino code is just C/C++, so all of this is standard C syntax.

I’ll show you the most useful ones with small Arduino-style examples.
**1. if, else if, else**
Use these to make decisions.
**Example: turn an LED on when a button is pressed**
```
const int LED_PIN = 13;
const int BUTTON_PIN = 2;
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP); // button to GND
}
void loop() {
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW) { // button pressed
digitalWrite(LED_PIN, HIGH);
} else { // button not pressed
digitalWrite(LED_PIN, LOW);
}
}
```
**Key points**
* Condition in () must be true/false (0 or non-0).
* Single = is assignment, == is comparison → always use == in if.
* Use {} braces when you have more than one statement (and it’s good habit even for one).
With else if for multiple ranges:
```
int value = analogRead(A0);
if (value < 200) {
// low
} else if (value < 600) {
// medium
} else {
// high
}
```
**2. switch – many options based on one value**
Good for menus, commands, states.
**Example: control LED mode via serial commands**
```
int mode = 0;
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available()) {
char c = Serial.read();
if (c == '0') mode = 0;
else if (c == '1') mode = 1;
else if (c == '2') mode = 2;
}
switch (mode) {
case 0:
digitalWrite(13, LOW); // off
break;
case 1:
digitalWrite(13, HIGH); // on
break;
case 2:
// blink slowly
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
break;
default:
// unknown mode – do nothing or safe state
break;
}
}
```
**Key points**
* switch (value) { case …: … break; }
* Always put break; unless you want to fall through to the next case.
**3. for loops – repeat a fixed number of times**
**Example: blink LED 10 times**
```
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
for (int i = 0; i < 10; i++) {
digitalWrite(13, HIGH);
delay(200);
digitalWrite(13, LOW);
delay(200);
}
while (true) {
// Stop here forever after blinking 10 times
}
}
```
**Typical pattern**
```
for (initialization; condition; step) {
// body
}
```
* i = 0 → start
* i < 10 → loop while this is true
* i++ → run after each loop
**Array example:**
```
int pins[] = {3, 5, 6};
const int count = sizeof(pins) / sizeof(pins[0]);
void setup() {
for (int i = 0; i < count; i++) {
pinMode(pins[i], OUTPUT);
}
}
```
**4. while and do…while – loop until condition changes**
while
Loops as long as the condition is true.
**Example: wait until a button is pressed**
```
void loop() {
Serial.println("Waiting for button...");
while (digitalRead(2) == HIGH) {
// do nothing, just wait
}
Serial.println("Button pressed!");
delay(500);
}
```
Be careful: if the condition never changes, you get an infinite loop.
do…while
Runs at least once, then checks condition.
```
int count = 0;
void loop() {
do {
Serial.println(count);
count++;
} while (count < 5);
while (true) { } // stop
}
```
**5. break, continue, return**
* break – exit the nearest loop or switch.
* continue – skip rest of current iteration, go to next.
* return – exit the current function.
**Example with break and continue:**
```
void loop() {
for (int i = 0; i < 10; i++) {
if (i == 3) continue; // skip 3
if (i == 8) break; // stop loop when i == 8
Serial.println(i);
}
while (true) {}
}
```
**6. Where these go in Arduino code**
Remember the Arduino structure:
```
void setup() {
// runs once
}
void loop() {
// runs repeatedly
}
```
All your control statements live inside setup() or loop() (or inside functions you call from them). They control the flow of your program:
* if / switch → choose what to do right now
* for / while / do…while → choose how many times to do it