分支和循环(下)(for ,while,do-while,goto)

一:while循环

1. 基本语法

在C语言中,`while`循环是一种控制结构,用于重复执行一段代码块,只要给定的条件为真(非零)。`while`循环的基本语法如下:

其实while 语句和 if 语句非常相似

2. while 语句的执行流程

3.例子

在这个示例中,`while`循环会一直执行,直到`a`的值大于10。每次循环,`a`的值都会递增。当`a`的值超过10时,循环条件`a <= 10`变为假,循环终止,然后程序输出累加的总和。

`while`循环的一个常见错误是忘记更新循环条件中的变量,这会导致无限循环。例如,如果上面的例子中忘记增加`a`的值,循环将永远不会结束。

另一个注意事项是,当使用`while`循环时,应该小心处理可能导致死循环的条件。例如,如果循环条件依赖于用户输入,而用户输入没有被正确地处理或验证,那么可能会导致程序无法退出循环。

总之,`while`循环是C语言中非常有用的控制结构,它允许你根据条件重复执行代码块,直到条件不再满足为止。

二:for循环

1. 语法形式

for 循环是三种循环中使用最多的,for循环的语法如下

2. for 语句的执行流程

3.例子

在这个示例中,` i = 1`是初始化步骤,`i <= 10`是循环条件,`i++`是调整。循环体中的`printf`语句用于打印当前循环控制变量`i`的值。当`i`的值从1递增到10时,循环条件始终为真,因此循环体会被执行10次,分别打印出数字1到10。

三:do-while循环

1. 语法形式

在循环语句中 do-while语句的使用最少,语法如下

2.do-while语句的执行流程

3.例子

在这个示例中,变量`i`被初始化为1,然后进入`do-while`循环。循环体中的`printf`语句打印出`i`的当前值,然后`i`递增1。在每次循环迭代结束后,都会检查条件`i <= 10`是否为真。如果为真,则继续执行循环体;如果为假(即`i`大于10时),则退出循环。因此,这个循环会打印出数字1到10。

需要注意的是,`do-while`循环至少会执行一次循环体,即使循环条件在第一次检查时就为假。这与`for`循环不同,`for`循环可能会因为初始化步骤或循环条件不满足而一次都不执行循环体。

四:break 和 continue语句

在C语言中,`break`和`continue`是两个用于控制循环流程的关键字。

1.break


`break`关键字用于立即退出最内层的循环(无论是`for`循环、`while`循环还是`do-while`循环)。当`break`语句被执行时,程序会跳过循环体中剩余的代码,并继续执行循环结构之后的代码。


例子1:

这个示例中,只打印了一个1;因为执行一次我直接break跳过了这个循环,所以只打印了1;

例子2:

这个示例中,只能打印奇数,当到偶数时,此循环停止,所以只打印了1.

2.continue

`continue`关键字用于跳过当前循环迭代中剩余的代码,并立即开始下一次迭代。当`continue`语句被执行时,循环条件会再次被检查,如果条件仍然为真,则循环体会重新执行。

例子


此示例中,当是奇数时跳过,不打印,但不结束循环。所以只会打印偶数。

五:循环的嵌套

在C语言中,循环可以嵌套,即一个循环语句的循环体中包含另一个循环语句。循环的嵌套可以更加复杂和灵活地控制程序的执行流程。

1.例子

此示例是输出了100-200之间的素数

1:首先 i 产生100-200之间的数字,用了一次for循环

2: 判断 i 是否是素数

问题:怎么判断素数

a: 产生2~i-1之间的数字,又用了一次for循环

b: 试除i

那2~i-1之间的数字去试除,如果这些数字中有任何一个数字能整除i,i就不是素数,如果这些数字中所有的数字都不能整除i,i就是素数

2.注意

需要注意的是,在循环嵌套时,内层循环的迭代次数应该尽可能少,以避免代码冗长和性能问题。如果内层循环过于复杂或迭代次数过多,可能会导致程序执行效率降低。因此,在编写循环嵌套时应该谨慎考虑,确保代码的效率和可读性。

六:goto 语句(注:不建议使用

在C语言中,`goto`语句是一种无条件跳转语句,它可以使程序流程立即跳转到程序中指定的行。`goto`语句与C语言中的标签(label)一起使用,标签是一个标识符,后面跟着一个冒号。

当`goto`语句被执行时,程序会立即跳转到与`goto`语句中指定的标签相对应的代码行,并从那里继续执行。

例子


在这个示例中,`goto`语句用于实现一个简单的循环,打印数字0到10。当`i`小于等于10时,程序会跳转到标签label处,并重复执行循环体中的代码。当`i`不再小于等于10时,`goto`语句不再执行,程序继续执行`return 0;`语句,结束程序。

尽管`goto`语句在某些情况下可以方便地控制程序流程,但它通常被认为是一种不良的编程实践,因为它可以使代码结构变得复杂和难以维护。使用`goto`语句可能导致代码的可读性降低,并使错误调试变得更加困难。因此,在现代的C语言编程中,通常推荐使用其他控制结构(如`for`、`while`、`do-while`循环和`if-else`语句)来组织代码,而不是依赖`goto`语句。


 

  • 39
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值