循环结构是编程语言中的重要组成部分,虽然for、while等循环语句在Python、C、Java等各种语言中都有不同的实现方法,但是它们的核心思想是一致的。
在实际开发中,我们经常需要使用循环结构来重复执行一系列的操作,这就需要我们掌握一些使用while语句的技巧来优化代码效率。
一、while语句基础
在Python中,while语句的基本语法如下:
```
while condition:
code_to_execute_while_condition_is_true
```
while语句由while关键字、条件表达式、冒号和缩进的代码块组成。当while语句中的条件表达式为True时,代码块中的语句将被重复执行,直到条件表达式变为False。
例如,下面的代码将从1开始打印每个整数数字,直到数字大于等于10:
```
i = 1
while i <= 10:
print(i)
i += 1
```
在这个例子中,我们使用了一个变量i来计数,当i的值小于等于10时,代码块中的语句将被重复执行,直到i的值变大于10时while条件为False,循环结束。
二、死循环
死循环是指代码块中的语句会重复执行,但条件表达式永远不会变为False,这将导致程序无限循环下去,从而占用大量的系统资源,严重时可能会导致系统崩溃。
例如,下面的代码将持续打印“Hello, world!”直到程序被中断:
```
while True:
print("Hello, world!")
```
这里,条件表达式始终为True,代码块中的语句会重复执行,并打印无数次“Hello, world!”这样的死循环会导致计算机的CPU负载达到100%,可能会引起系统卡死。
为了避免死循环,我们必须确保条件表达式在循环运行的过程中能够最终变为False,或者在代码块中使用break或return等中止循环的语句。
三、循环控制语句
1. break语句
break语句用于立即中止循环,跳出循环体,直接执行循环体之后的语句。
例如,下面的代码将在找到第一个质数时中止循环:
```
num = 10
while num > 1:
for i in range(2, num):
if num % i == 0:
break
else:
print(num, "是质数")
num -= 1
```
在这个例子中,我们使用for循环来判断num是否为质数。如果我们找到了一个num的因子,就可以通过break语句中止for循环并跳出while循环。
2. continue语句
continue语句用于立即跳过当前循环中的剩余语句,并执行下一次循环。
例如,下面的代码将在num和10之间打印所有奇数:
```
num = 0
while num < 10:
num += 1
if num % 2 == 0:
continue
print(num)
```
在这个例子中,我们使用了continue语句来跳过偶数,只输出奇数。
3. else语句
else语句用于在循环条件变为False时执行一次,通常用于在循环结束后添加一些代码。
例如,下面的代码将在找到第一个水仙花数时执行一次:
```
num = 100
while num < 1000:
sum = 0
temp = num
while temp:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num, "是水仙花数")
break
num += 1
else:
print("没有找到水仙花数")
```
在这个例子中,我们使用while循环和if语句来判断是否为水仙花数。当循环条件变为False时,如果没有找到水仙花数就执行else语句。
四、使用while语句优化代码效率
1. 避免重复计算
在循环中进行重复计算可能会降低代码的效率,因为计算量可能会非常巨大。我们可以使用while循环来避免这个问题。
例如,下面的代码将使用while循环求1到100之间所有整数数字的和:
```
n = 1
sum = 0
while n <= 100:
sum += n
n += 1
print("1到100之间的整数数字之和为:", sum)
```
在这个例子中,我们使用while循环来计算1到100之间所有数字的和,这样可以避免重复计算。
2. 使用嵌套循环
嵌套循环是指在循环内部包含另一个循环。嵌套循环常常用于解决复杂的问题,例如循环嵌套搜索、遍历元组、列表等。
例如,下面的代码将使用嵌套循环来打印一个九九乘法表:
```
row = 1
while row <= 9:
col = 1
while col <= row:
print(col, "*", row, "=", col * row, end=" ")
col += 1
print()
row += 1
```
在这个例子中,我们使用嵌套循环来生成一个九九乘法表。这个程序运行时会打印所有小于等于9的数字的所有乘积。
3. 使用循环控制语句
上文中已经介绍了break、continue和else循环控制语句。使用这些语句可以让我们更好地控制循环的执行顺序,增加代码的可读性和可维护性。
例如,下面的代码将打印斐波那契数列中的前10项:
```
a, b = 0, 1
i = 0
while True:
print(b)
a, b = b, a + b
i += 1
if i == 10:
break
```
在这个例子中,我们使用while循环和if语句来打印斐波那契数列中的前10项。当i等于10时,我们使用break语句中止循环并跳出程序。
总结
掌握while语句的使用技巧可以大大提高我们的代码效率。在使用while语句时,需要注意避免死循环、使用循环控制语句和优化循环结构。建议通过实践来不断加深对while语句的理解和运用,从而将自己的编程技能提升到更高的水平。