---
schema_version: "1"
id: 8d7b4125b08ef53faeae83346a469a7ebb311724445f0c526e1f22c92c841ca6
title: Loops
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/apexcode/langCon_apex_loops.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_loops.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 5bd96707c0340e5b6d00a4df15b810853f67aa699530aad6ba2ec015fa5295cb
description: Apex supports five types of procedural loops.
---
# Loops

Apex supports five types of procedural loops.

These types of procedural loops are supported:

- [do {statement} while (Boolean\_condition);](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_loops_do_while.htm)
- [while (Boolean\_condition) statement;](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_loops_while.htm)
- [for (initialization; Boolean\_exit\_condition; increment) statement;](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_loops_for.htm)
- [for (variable : array\_or\_set) statement;](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_loops_for_lists.htm)
- [for (variable : \[inline\_soql\_query\]) statement;](langCon_apex_loops_for_SOQL.htm "SOQL for loops iterate over all of the sObject records returned by a SOQL query.")

All loops allow for loop control structures:

- break; exits the entire loop
- continue; skips to the next iteration of the loop

1. [Do-While Loops](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_loops_do_while.htm)
2. [While Loops](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_loops_while.htm)
3. [For Loops](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_loops_for.htm)