**while**

The while keyword starts a loop/repetitive operation, and controls it with a test (like while in NetLogo). Here's the structure:

*while test == True:
do this
and this
land here when the test ==False*

**Examples:**

Code |

# this will print 1 through 3 on 3 lines i = 1 while i <= 3: print(i) i = i+1 print('Done') |

Output |

1 2 3 Done |

Code |

# add up the numbers from 1 to 10 i = 1 total = 0 while i <= 10: total = total+i i = i+1 print("Total is ",total) |

Output |

Total is 55 |

**if, else, elif**

**4 examples:**

if n > 0: george = 12 |

if n > 0: harry = "whatever" else: harry = "whatever and a bit" |

if n > 0: harry = n + 1 elif n < -2: harry = n - 1 else: harry = 0 |

if n > 0: if harry == "whatever": george = 12 else: george = -3 else: george =0 |

while + if in action

Task: create a function called lcm(a,b) that finds the least common multiple of the two given numbers, a and b. This is the smallest number that both a and b divide evenly. For instance, lcm(3,5) is 15. The following is an easy, but not necessarily efficient way of doing this...

# keep looking at multiples of a until one
of them is divisible by b def lcm(a,b): multiple = a while multiple % b > 0: multiple = multiple + a return multiple |

# this is risky, but does the job def lcm2(a,b): multiple = a while True: if multiple % b == 0: return multiple multiple = multiple + a |

# here's a somewhat more efficient way, by
making sure that the multiple is of the larger number... # using the function lcm() above as a helper function... def lcm_better(a,b): if a >= b: return lcm(a,b) else: return lcm(b,a) |