C程序程序设计-循环结构(while...do、for、练习题)

👨‍ Biaoge ⏰于2024-03-08 00:04发布 👓阅读量:10 🏷️文章类型:【 C语言程序设计 】

循环结构

同学们好,今天我们要学习的内容是C语言中的循环结构。你可能会想,什么是循环结构呢?其实,循环结构就像是我们生活中的重复动作,比如刷牙、洗脸,每天都要重复做。在编程中,循环结构就是用来重复执行某段代码的一种结构。

首先,我们来了解一下最基本的循环结构——for循环。for循环就像一个计数器,它设定了一个起始值,一个结束值,以及一个步长,然后按照步长来逐渐增加或减少这个值,直到达到结束值为止。在这个过程中,每次循环都会执行一段特定的代码。

for循环

下面是一个简单的示例,我们用for循环来打印出1到5这五个数字:
#include <stdio.h> 
  
int main() {  
    int i;  
    for (i = 1; i &lt;= 5; i++) {  
        printf("%d ", i);  
    }  
    return 0;  
}
在这个例子中,for循环的初始值是1,结束值是5,步长是1。每次循环,都会打印出当前的i值,并且i的值会增加1。所以,运行这段代码后,你会看到屏幕上依次打印出1到5这五个数字。

while循环

除了for循环,C语言还提供了while循环和do-while循环。while循环会在满足某个条件时一直执行循环体,直到条件不满足为止。而do-while循环则是至少会执行一次循环体,然后再判断条件是否满足,如果满足则继续执行,否则退出循环。

这里我们给出一个while循环的示例,同样是打印出1到5这五个数字:

 
#include <stdio.h>
  
int main() {  
    int i = 1;  
    while (i <= 5) {  
        printf("%d ", i);  
        i++;  
    }  
    return 0;  
}
在这个例子中,while循环的条件是i <= 5,只要这个条件满足,就会一直执行循环体。在循环体中,我们打印出当前的i值,并将i的值增加1。所以,和for循环一样,这段代码也会打印出1到5这五个数字。

do-while循环

最后,我们来看一下do-while循环的示例:
#include <stdio.h>
  
int main() {  
    int i = 1;  
    do {  
        printf("%d ", i);  
        i++;  
    } while (i <= 5);  
    return 0;  
}
这个do-while循环会先执行一次循环体,然后判断条件i <= 5是否满足。如果满足,就继续执行循环体;如果不满足,就退出循环。所以,这段代码同样会打印出1到5这五个数字。

好了,以上就是C语言中循环结构的基本介绍和示例。现在,我来出几道小试题,检验一下大家的学习成果吧:

试题

下面的for循环会打印出什么结果?
for (int i = 0; i &lt; 5; i += 2) {  
    printf("%d ", i);  
}
请将下面的代码片段补全,使其使用while循环打印出1到10这十个数字:
int i = 1;  
while (/* 条件 */) {  
    printf("%d ", i);  
    i++;  
}
下面的do-while循环有一个错误,请指出并修正它:
int i = 5;  
do {  
    printf("%d ", i);  
    i--;  
} while (i > 0);
好的,同学们可以尝试回答一下这些问题,看看自己是否掌握了循环结构的基本用法。如果有不懂的地方,随时向我提问哦!


循环控制语句

除了循环结构本身,break、continue和goto这三个关键字在循环中也扮演着非常重要的角色。下面我会逐一为你们解释它们的作用和用法,并给出相应的示例。

Break跳出当前循环

首先是break。break用于在循环中提前退出。当程序执行到break语句时,会立即跳出当前循环,不再执行循环体中剩余的代码,而是继续执行循环之后的语句。这在某些条件下需要中断循环时非常有用。

例如,如果我们想要打印出1到10之间的所有偶数,可以使用break来跳出当遇到奇数时的循环:

#include <stdio.h>
  
int main() {  
    int i;  
    for (i = 1; i <= 10; i++) {  
        if (i % 2 != 0) { // 如果i是奇数  
            break; // 跳出循环  
        }  
        printf("%d ", i);  
    }  
    return 0;  
}

在这个例子中,当i为奇数时,break语句会被执行,从而跳出循环。因此,这段代码只会打印出2、4、6、8、10这几个偶数。


continue跳过当前循环

接下来是continue。与break不同,continue的作用是跳过当前循环的剩余部分,直接进入下一次循环。它不会结束整个循环,只是跳过当前循环的某次迭代。

比如,如果我们想要打印出1到10之间所有不是3的整数,可以使用continue来跳过当i等于3时的那次循环:

#include <stdio.h>
  
int main() {  
    int i;  
    for (i = 1; i <= 10; i++) {  
        if (i == 3) { // 如果i等于3  
            continue; // 跳过本次循环的剩余部分  
        }  
        printf("%d ", i);  
    }  
    return 0;  
}

在这个例子中,当i等于3时,continue语句会被执行,从而跳过打印操作,直接进入下一次循环。因此,这段代码会打印出除了3以外的1到10之间的所有整数。

最后,我们来说说goto。goto语句在C语言中用于无条件跳转到程序中的另一个位置。然而,需要注意的是,过度使用goto语句会使程序流程变得难以理解和维护,因此在实际编程中并不推荐使用。在大多数现代编程实践中,我们更倾向于使用循环、条件语句和函数调用来控制程序流程。


GOTO

由于goto语句的局限性和不推荐使用的现状,我们在这里就不给出具体的goto示例了。但你们需要知道的是,尽管goto在某些情况下可能看起来方便,但它通常不是解决复杂程序流程问题的最佳方式。

通过上面的解释和示例,我希望你们能对break、continue和goto这三个关键字在循环中的用法有一个清晰的认识。记住,它们都是控制程序流程的重要工具,但在使用时需要谨慎考虑其对程序可读性和可维护性的影响。

现在,我再来出几道关于这些关键字的小试题,看看大家是否真正掌握了它们的用法:


试题

  1. 在下面的代码中,break语句的作用是什么?

    for (int i = 0; i < 10; i++) {  
        if (i == 5) {  
            break;  
        }  
        printf("%d ", i);  
    }
  1. 修改下面的代码,使用continue语句跳过所有偶数的打印。

    for (int i = 0; i < 10; i++) {  
        printf("%d ", i);  
    }
  1. goto语句在C语言中通常被认为是不好的编程实践,为什么?请给出至少两个原因。


感谢你的阅读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彪哥.TOP

稀罕作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值