While Loop Example 2

Modern JavaScript Using Control Structures
11 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€96.21
List Price:  €134.70
You save:  €38.49
£79.93
List Price:  £111.90
You save:  £31.97
CA$143.79
List Price:  CA$201.32
You save:  CA$57.52
A$160.48
List Price:  A$224.69
You save:  A$64.20
S$135.83
List Price:  S$190.17
You save:  S$54.33
HK$777.07
List Price:  HK$1,087.93
You save:  HK$310.86
CHF 89.45
List Price:  CHF 125.24
You save:  CHF 35.78
NOK kr1,141.95
List Price:  NOK kr1,598.78
You save:  NOK kr456.82
DKK kr717.64
List Price:  DKK kr1,004.72
You save:  DKK kr287.08
NZ$177.52
List Price:  NZ$248.53
You save:  NZ$71.01
د.إ367.25
List Price:  د.إ514.17
You save:  د.إ146.91
৳11,994.74
List Price:  ৳16,793.12
You save:  ৳4,798.37
₹8,496.63
List Price:  ₹11,895.62
You save:  ₹3,398.99
RM450.75
List Price:  RM631.07
You save:  RM180.32
₦155,628.43
List Price:  ₦217,886.03
You save:  ₦62,257.60
₨27,934.96
List Price:  ₨39,110.06
You save:  ₨11,175.10
฿3,444.45
List Price:  ฿4,822.37
You save:  ฿1,377.92
₺3,518.54
List Price:  ₺4,926.10
You save:  ₺1,407.55
B$617.53
List Price:  B$864.57
You save:  B$247.04
R1,837.80
List Price:  R2,572.99
You save:  R735.19
Лв188.31
List Price:  Лв263.64
You save:  Лв75.33
₩144,872.25
List Price:  ₩202,826.95
You save:  ₩57,954.69
₪364.89
List Price:  ₪510.86
You save:  ₪145.97
₱5,883.01
List Price:  ₱8,236.45
You save:  ₱2,353.44
¥15,672.80
List Price:  ¥21,942.55
You save:  ¥6,269.75
MX$2,028.91
List Price:  MX$2,840.56
You save:  MX$811.64
QR366.34
List Price:  QR512.89
You save:  QR146.55
P1,382.59
List Price:  P1,935.69
You save:  P553.09
KSh12,923.70
List Price:  KSh18,093.70
You save:  KSh5,170
E£5,091.27
List Price:  E£7,127.98
You save:  E£2,036.71
ብር12,764.56
List Price:  ብር17,870.89
You save:  ብር5,106.33
Kz91,790.82
List Price:  Kz128,510.82
You save:  Kz36,720
CLP$99,155.08
List Price:  CLP$138,821.08
You save:  CLP$39,666
CN¥729.81
List Price:  CN¥1,021.77
You save:  CN¥291.95
RD$6,104.52
List Price:  RD$8,546.58
You save:  RD$2,442.05
DA13,454.60
List Price:  DA18,836.98
You save:  DA5,382.37
FJ$232.11
List Price:  FJ$324.96
You save:  FJ$92.85
Q773.21
List Price:  Q1,082.52
You save:  Q309.31
GY$21,000.46
List Price:  GY$29,401.48
You save:  GY$8,401.02
ISK kr13,903.60
List Price:  ISK kr19,465.60
You save:  ISK kr5,562
DH1,007.40
List Price:  DH1,410.40
You save:  DH403
L1,841.78
List Price:  L2,578.57
You save:  L736.78
ден5,922.50
List Price:  ден8,291.74
You save:  ден2,369.23
MOP$803.42
List Price:  MOP$1,124.82
You save:  MOP$321.40
N$1,834.70
List Price:  N$2,568.66
You save:  N$733.95
C$3,694.32
List Price:  C$5,172.20
You save:  C$1,477.87
रु13,665.58
List Price:  रु19,132.35
You save:  रु5,466.77
S/374.71
List Price:  S/524.60
You save:  S/149.89
K406.86
List Price:  K569.63
You save:  K162.76
SAR375.72
List Price:  SAR526.02
You save:  SAR150.30
ZK2,777.96
List Price:  ZK3,889.25
You save:  ZK1,111.29
L478.81
List Price:  L670.35
You save:  L191.54
Kč2,418.25
List Price:  Kč3,385.65
You save:  Kč967.40
Ft39,800.47
List Price:  Ft55,722.25
You save:  Ft15,921.78
SEK kr1,103.66
List Price:  SEK kr1,545.17
You save:  SEK kr441.50
ARS$102,190.76
List Price:  ARS$143,071.15
You save:  ARS$40,880.39
Bs693.61
List Price:  Bs971.08
You save:  Bs277.47
COP$437,799.12
List Price:  COP$612,936.28
You save:  COP$175,137.16
₡50,480.33
List Price:  ₡70,674.48
You save:  ₡20,194.15
L2,548.03
List Price:  L3,567.35
You save:  L1,019.31
₲784,126.06
List Price:  ₲1,097,807.85
You save:  ₲313,681.79
$U4,460.41
List Price:  $U6,244.75
You save:  $U1,784.34
zł409.96
List Price:  zł573.96
You save:  zł164
Already have an account? Log In

Transcript

While loops are best for situations, when you don't know how many times you need to cycle through a loop, in order to get the results that you're after, however, any type of loop can be used to solve a particular problem. As you learn the for loop, which we'll learn next, you then need to decide which type of loop you feel most comfortable with. I find myself using the for loop the most and what the while loop second most, but let's take a look at another example of the while loop. I'm going to open sublime. And what we want to do in this example is find where the third B is in the in this sentence, and the sentence is the brown bear jumped over the big fence. So there's three B's in there, we want to find where the third b is.

So let's see how we would do that. We'll need a couple of variables. We'll need a variable to keep track of the count. So how many bees we have discovered the count of the number of bees. So let's set a variable count equal to zero. Because right now we haven't as we start the loop, we haven't discovered any bees.

Then we also need a variable for the location of the letter in the sentence. Now we're going to be looking at a new method that is part of the object wrapper that goes with strings. And this method allows us to look at each individual character in a string. And so we will use this location variable to identify that character in the string. Remember, a string is zero based, so the first character is zero, the second is 123, and so on. So we start with zero so that we can take a look at the first character because We are assuming we don't know where the bees are located.

We want the program to figure that out. Alright, so we have three variables. Now let's go ahead and set up our while loop. So while now the condition we want to meet is we want to find out when count is three, because once it's three, we will have located the third B. So while Let's set our condition as while count is less than three, once s3 will stop executing the loop, and jump out, put our curly braces for our block block of code that will iterate through. Now we need to somehow increment count when we encounter a B, we need to increment count.

So how can we find out if we have a B? Well, that sounds like a situation where we if statements so yeah, and then some conditional, and what's that conditional going to be, while we're looking at the sentence. So let's put sentence and we want to look at a specific character. Now the, the object method, the string object method for looking at a character is called character at. And then we put the location parameter. So we want to look at the zero character first.

Now, if this is whoops, if this is equal to b, then we want to do something. Alright, so there's our if statement. However, there's one little problem here. We have an uppercase B, and there are several lowercase B's in the sentence. So we need to deal with that. While we could do our chaining and add a to uppercase method at the end That's one way to do it.

But that means we would have to convert it to uppercase every time it cycled through the loop. So to reduce the number of times it does that. And to make our program not do as much work, let's just do that once. Let's do it before we enter the loop. So sentence equals sentence.to, uppercase. Okay, so let's see what we did there.

We reset this variable to the same contents, but we converted it all to uppercase. Okay. So, now let's go back to our if statement. If sentence character at 01234 as that cycles through the loop, if that equals b, then we want to add to our counter, increment our counter. So as soon as it finds a B, we increment it. Then it will go again and Till it is three, which will cause this condition to return faults, and it will exit out of the loop.

All right. So right now locate Shin, our location variable is set to zero, we need to do something to make sure that continues to count up. If we were to leave this loop as it is, we would have what is called an infinite loop. Without the location number changing this loop would just continue, continue, continue continue, it would never stop, then our webpage would become unresponsive and we'd have to close down the browser that type of thing and so you want to avoid infinite loops. So let's make sure we are incrementing our location variable, okay, that will add one to it. All right, once it finds once the count becomes three or greater than two, then it will exit out of the loop.

Then we can go ahead and console dot log And we'll just we're just going to print out the portion of the sentence where the third bead begins. So sentence, dot slice, location. All right? Remember with the slice method, if we just enter one number, it starts at that location within the string, and then extract everything to the end of the string. So that's why we're just entering one number here. Alright, let's see how this goes.

We will be we're going to come back and make some modifications. But let's take a look at this solution so far. So I'm going to grab the file path, jump to the browser. When that page, open up the console, and also what we have big fence. Wow, we're missing the B All right. So we did get everything at the end of the sentence.

But notice, it did not extract the br slice method did not pull out the B, why would that happen? Now this is a type of process you would go through as you're writing your own code you, you're going to run into a situation where you're wondering, Well, why did it work that way? So let's go back to our code and see if we can figure out why it did that. All right, so we're counting, counting counting, we get to where this finds the the third B. So it's going to x out of the loop. However, before it exits out of the loop, look what happens.

It increments location variable. So that location variable is now set to I instead of B. And so when we slice, we get i g fence. All right. So how could we correct that? Well, we can reduce this variable, location minus one.

Let's see if that works. Jump back. And sure enough that works. Now let me show you something else we could have done here. Remember the dick decrement operator? What happens if we put that in?

Oh, we don't get to be any more. Why is that? Well remember the decrement and increment operators, it uses a variable and then it increments or decrement set. So if we were to put the DEC decrement operator on this side of the variable, then that should work. Let's try it. Sure enough, that worked.

Okay, let's talk about one more situation. I said we need to avoid infinite loops. What if we were given a sentence that doesn't have no does have three B's black actually has a bee in it. It's a red bear. Okay, there's not three bees, we're going to have an infinite loop again. Because it'll never count, we'll never get beyond to one, two.

And this is going to cause us problems. So we really need to refine our conditional statement. Okay? Make it more accurate. So to do that, let's have a check more than one condition. Let's have it not only check the count, but let's, let's also have it check this location and see if this location is beyond the length of the string.

Okay, so we do that with a logical end is greater than sentence dot length. So if remember, in order for a condition that has a logical and to evaluate to true, both sides of that condition must be true. As soon as one of those becomes faults. I did this backwards, we need to do less than, because as soon as it becomes larger than the length of the sentence, then it will become faults, and then it will exit out of the stream. So we want to do this loop while count is less than three and while the location is less than the length of the string. All right, so, let's see what happens.

We only have two B's go ahead and save that. All right, we didn't get stuck in an infinite loop. It did print out the last character because we subtract one from Luke But it did not find the final B. All right, so we prevented ourselves from being in an infinite loop. Alright, so with that example of the while loop, we were able to cover several different topics. And hopefully you're getting more and more the feel of what it's like to program and what it's like to work in JavaScript.

All right, let's move on and learn about the for loop.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.