## Goals

The goal of this lab is to learn the following:

• Understanding the types of repeat statement
• Using loops

## Computer Science Principles Curriculum

• Big Idea: Algorithms: EK 4.1.1A, EK 4.1.1B, EK 4.1.1C, EK 4.1.1D, EK 4.1.1E, EK 4.1.1F, EK 4.1.1G, EK 4.1.1H, EK 4.2.1A, EK 4.2.1B
• Big Idea: Programming: EK 5.1.2A, EK 5.1.2B, EK 5.2.1A, EK 5.2.1B, EK 5.2.1C, EK 5.2.1D, EK 5.2.1E, EK 5.5.1A, EK 5.5.1D

## Common Core Standards

• English Language Arts Standards » Science & Technical Subjects: CCSS.ELA-Literacy.RST.9-10.3, CCSS.ELA-Literacy.RST.9-10.4, CCSS.ELA-Literacy.RST.9-10.5, CCSS.ELA-Literacy.RST.9-10.7, CCSS.ELA-Literacy.RST.9-10.10, CCSS.ELA-Literacy.RST.11-12.2, CCSS.ELA-Literacy.RST.11-12.3, CCSS.ELA-Literacy.RST.11-12.4, CCSS.ELA-Literacy.RST.11-12.5, CCSS.ELA-Literacy.RST.11-12.10
• Mathematics Content: High School Functions » Building Functions: CCSS.Math.Content.HSF.BF.1A
• Standards For Mathmatical Practice: CCSS.Math.Practice.MP1, CCSS.Math.Practice.MP2, CCSS.Math.Practice.MP4, CCSS.Math.Practice.MP5, CCSS.Math.Practice.MP6, CCSS.Math.Practice.MP7, CCSS.Math.Practice.MP8

• Loops
• Repeat times
• Repeat while
• Repeat until
• Random

## Overview

In this lab, we will learn about using loops in Quorum.

## Goal 1: Understanding the types of repeat statement

The concept of repetition, where we do the same thing over and over again, is common in computer programming. Robots in the real world, for example, might do the same thing repeatedly in order to allow humans not to. Programs as well, might use repetition to do things like long searches, like looking for a phone number in a list. In this first goal, we will use the 'repeat' statement to do this.

In order to use loops you must use the `repeat` statement. There are 3 types of the repeat statement: `repeat times`, `repeat while` and `repeat until`.

The `repeat times` statement you will use to perform a task a certain number of times.

### Example: Write "Hello!" 5 times.

``````repeat 5 times
output "Hello!"
end
``````

You should see in your output window exactly 5 "Hello!".

The `repeat while` loop works differently than the `repeat times` loop. The `repeat while` loop works like an if statement, but at the `end` keyword, Quorum evaluates and determines if the loop should go again.

Example: Use `repeat while` to check how many apps for your phone you can buy.

``````text balanceInput  = input("How much money do you have in your account?")
number balance = cast(number, balanceInput)
integer counter = 0
repeat while balance > 1
number price = 1.0
counter = counter + 1
balance = balance - price
output "You have enough money to buy another app!"
end
output "You don't have money enough to buy another app! You have bought " + counter + " apps!"
``````

For testing, let's use 6 as the input. Our output should be 5 times the phrase that we have enough money to buy another app. The last line is the phrase saying we do not have enough money and how many apps you have bought.

The final type of loop in Quorum is the `repeat until` loop. The `repeat until` functions much in the same way as `repeat while` , but the interpretation of your condition is slightly different. Instead of saying repeat while balance > 1 you can say repeat until balance < 1. The difference between these two conditions is that in the repeat while the number 1 is not included while in the repeat until the number 1 is included, for them to match exactly you should use <=(less or equal).

Your output should look exactly the same for the same input with both statements.

## Goal 2: Using Loops

You will work with all three kinds of loops to get a grasp of each loop. Also, for this task, you will be using the `Random` class. Add a use statement for the `Random` class, found in the Compute library, at the top of the file. To help you become familiar with the `Random` class, sample code using the `Random` class is provided below.

### Example: How to use the Random Class.

``````use Libraries.Compute.Random
Random choice
integer counter1 = 0
integer randomValue = 0
repeat 6 times
randomValue = choice:RandomInteger(100)
counter1 = counter1 + 1
output "counter = " + counter1
output "random value = " + randomValue
end
``````

The loop repeats the block of code 6 times as you can see and each time the computer choose a randomly generated `integer` value between 0 and 100.

## Next Tutorial

In the next tutorial, we will discuss Lab 3.3, which describes More Conditionals, Loops, and Debugging in Quorum..