Steve
Steve

Reputation: 39

We are analysing some code, I get what it is doing, but there is a line of code which I don't understand

This is the full code:

<html>
<head>
<script type='text/javascript'>
var banners = ["Red.jpg","Amber.jpg","Green.jpg"];
var bnrCntr = 0;
var timer;
function banCycle()
{
  if(++bnrCntr == 3)
  bnrCntr = 0;

  document.images.banner.src = banners[bnrCntr];

  timer = setTimeout("banCycle()",1000);
}
function stopCycle()
{
  clearTimeout(timer);
}

</script>
</head>
<body>
<img src="Red.jpg" name="banner" width=110 height=200>

<form>
<input type="button" value="Cycle" name="Cycle" onclick="banCycle()">
<input type="button" value="Stop" name="Stop" onclick="stopCycle()">
</form>
</body>
</html>

It is the line that I don't understand:

if(++bnrCntr == 3)

Can anyone tell me what this line does?

Upvotes: 0

Views: 122

Answers (2)

msmolcic
msmolcic

Reputation: 6557

It first increases the bnrCntr value by 1 and if that value equals to 3 it's set back to 0. You get circular banner changing this way. You could also write it this way, so it's more understandable:

if (++bnrCntr == banners.length)
    bnrCntr = 0;

So, when the index goes out of the bounds of the array, start from the beginning.

Upvotes: 0

Pointy
Pointy

Reputation: 413682

The line

if (++bnrCntr == 3)

does the same thing as

if ((bnrCntr += 1) == 3)

or

bnrCntr = bnrCntr + 1;
if (bnrCntr == 3)

The value of bnrCntr is incremented, and the result is then assigned back to the variable. Then the value is compared to 3. The ++ operator is called the prefix increment operator.

Upvotes: 2

Related Questions