Lesson 4
Mastering Nested Loops in Dart
Introduction

Our journey today delves into the intricate world of Exploring Nested Loops in Dart. Think of these as interlocking cogs within a mechanism, each managing its distinct movement. By the end of this session, we aim to understand and adeptly navigate these loops in Dart.

Structure of a Nested for Loop in Dart

We begin by revealing the structure of a nested for loop in Dart:

Dart
1for (var i = 0; i < 3; i++) { 2 for (var j = 0; j < 3; j++) { 3 print('i = $i, j = $j'); // e.g., "i = 0, j = 0" 4 } 5} 6/* 7Prints: 8i = 0, j = 0 9i = 0, j = 1 10i = 0, j = 2 11i = 1, j = 0 12i = 1, j = 1 13i = 1, j = 2 14i = 2, j = 0 15i = 2, j = 1 16i = 2, j = 2 17*/

With each progression of i from 0 to 2, we traverse through j from 0 to 2, notating the respective values of i and j.

Structure of a Nested while Loop in Dart

In addition to for loops, while loops can also incorporate nested loops:

Dart
1var i = 0; 2while (i < 3) { 3 var j = 0; 4 while (j < 3) { 5 print('i = $i, j = $j'); // e.g., "i = 0, j = 0" 6 j++; 7 } 8 i++; 9} 10/* 11Prints: 12i = 0, j = 0 13i = 0, j = 1 14i = 0, j = 2 15i = 1, j = 0 16i = 1, j = 1 17i = 1, j = 2 18i = 2, j = 0 19i = 2, j = 1 20i = 2, j = 2 21*/

In this instance as well, the inner loop j completes its cycle for each individual iteration of the outer loop i.

Iterations and Nested Loops: An Example

To illustrate nested loops, let's examine a two-dimensional (2D) list — essentially a list of lists:

Dart
1var matrix = [ 2 [1, 2, 3], 3 [4, 5, 6], 4 [7, 8, 9] 5]; 6 7for (var i = 0; i < matrix.length; i++) { // Iterating over each row. 8 var row = ''; 9 for (var j = 0; j < matrix[i].length; j++) { // Iterating over each element in the row. 10 row += '${matrix[i][j]} '; 11 } 12 print(row); 13} 14/* 15Prints: 161 2 3 174 5 6 187 8 9 19*/

For every i row in the outer loop, an inner loop runs through every element within that row.

Combining `for` and `while` Loops: Building a Numerical Pyramid

Now let's explore how to combine a for loop with a while loop to construct a numerical pyramid. This example demonstrates the adaptability of nested loops in Dart and how they can be seamlessly integrated.

Dart
1for (var i = 1; i <= 5; i++) { // The first loop (for) denotes each level of the pyramid. 2 var row = ''; 3 var j = 1; 4 while (j <= i) { // The second loop (while) adds numbers to each level. 5 row += '$j '; 6 j++; 7 } 8 print(row); // Prints each level of the pyramid. 9} 10 11/* 12Prints: 131 141 2 151 2 3 161 2 3 4 171 2 3 4 5 18*/
Lesson Summary and Practice

Bravo! We've successfully uncovered the mechanics of nested loops in Dart. We've examined nested for and while loops, explained practical cases, and practiced with experiential examples. Buckle up and anticipate some practice tasks coming your way! Your challenge is to master these nested loops. Ready to take it up? Forge ahead!

Enjoy this lesson? Now it's time to practice with Cosmo!
Practice is how you turn knowledge into actual skills.