C语言中的三种基本控制结构

1.顺序结构:

顺序结构是程序中最基本的结构,它按照语句的先后顺序依次执行。就像是一条流水生产线,每个步骤依次进行,没有跳跃或者分支。

示例代码:

#include <stdio.h> int main() { int a = 5; int b = 3; int sub = a - b; printf("两数之差为: %d\n", sub); return 0; }

//代码解释: 首先定义了两个整型变量a和b,并分别初始化为5和3。接着计算它们的差并将结果存储在变量sub中。最后通过printf函数输出两数之差。这些语句按照从上到下的顺序依次执行,这就是顺序结构的典型应用。

2.选择结构:

选择结构根据给定的条件来决定执行哪些语句。可以理解为在一个岔路口,根据不同的情况(条件)选择不同的路径(执行不同的代码块)。

if结构

a. if..... 一个if语句由一个表达式后跟一个或多个语句构成

示例代码:

#include<stdio.h> int main() { int n=0; scanf("%d",&n); if(n>0){ printf("+"); } if(n<0){ printf("-"); } if(n == 0){ printf("0"); } return 0; }

b.if...else... 一个if语句后可跟一个可选的else语句,else语句在布尔表达式为假时执行

示例代码:

#include<stdio.h> int main() { int n=0; scanf("%d",&n); if(n%2== 0){ printf("0"); } else{ printf("1"); } return 0; }

c.if...else if...else if...else 一个 if 语句后可跟个或多个 else if 语句,这个语句在之前的if或else if 没有成立的时候,并且当前else if 条件为非零时执行。

示例代码:

#include<stdio.h> int main() { int a=10,b=10,c=10; scanf("%d %d %d",&a,&b,&c); if(a >= b && a >= c){ printf("%d",a); } else if(b >= a && b >= c){ printf("%d",b); } else if(c>=a&&c>=b){ printf("%d",c); } else {} return 0; }

switch结构:(switch...case...break...default)

一个switch语句允许测试一个变量等于多个值的情况

代码示例:

#include <stdio.h> int main() { int day = 3; switch (day) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); break; default: printf("其他日期\n"); } return 0; } //代码解释: 这里定义了一个变量day并赋值为3。switch语句根据day的值来决定执行哪个case分支。由于day的值为3,所以执行case 3分支中的语句,输出"星期三"。如果day的值没有匹配到任何一个case,就会执行default分支中的语句。每个case分支后的break语句是用来跳出switch结构的,避免执行多个分支的情况。

注意:switch中必须是整数    case的分支不能重复    注意不要忘记加break

3.循环结构:

循环结构用于重复执行一段代码,直到满足特定的条件为止。可以想象为一个人在环形跑道上跑步,只要没有达到规定的圈数(条件),就会一直跑下去。

for循环:

#include <stdio.h> int main() { int i; for (i = 1; i <= 5; i++) { printf("%d ", i); } printf("\n"); return 0; }

//代码解释 在这个for循环中,首先定义了一个变量i并初始化为1(这是for循环的初始化部分)。然后判断i是否小于等于5(这是for循环的条件判断部分), 如果条件为真,就执行循环体中的语句,即输出i的值。接着执行i++(这是for循环的迭代部分),让i的值增加1。这个过程会一直重复,直到i大于5。 所以这段代码会输出1 2 3 4 5。

while循环:

#include <stdio.h> int main() { int j = 1; while (j <= 5) { printf("%d ", j); j++; } printf("\n"); return 0; } //代码解释 这里首先定义了一个变量j并初始化为1。然后通过while语句判断j是否小于等于5,如果为真,就执行循环体中的语句,输出j的值,然后j自增1。这个过程会一直持续,直到j大于5,最终输出的结果和上面for循环的例子一样,是1 2 3 4 5。

do-while循环:

#include <stdio.h> int main() { int k = 1; do { printf("%d ",k); k++; } while (k <= 5); printf("\n"); return 0; }

//代码解释 在do - while循环中,先执行一次循环体中的语句。这里定义了变量k为1,先输出k的值,然后k自增1。 //接着判断while中的条件k <= 5是否成立,如果成立,就继续执行循环体。这个循环和while循环的区别在于,do - while循环至少会执行一次循环体,而while循环可能一次都不执行(当条件一开始就不满足时)。最终输出结果同样是1 2 3 4 5。

2)解释一下 break 和 continue 在循环中的作用。

break 在循环中的作用:

break语句用于立即终止包含它的最内层循环结构,程序将跳出循环,继续执行循环后面的语句。就好像你在一个环形跑道上跑步,突然遇到一个出口(break),直接离开跑道,不再继续当前的跑步循环。

#include <stdio.h> int main() { int i; for (i = 1; i <= 10; i++) { if (i == 5) { break; } printf("%d ", i); } printf("\n循环结束后的语句"); return 0; }

//代码解释 在这个for循环中,变量i从1开始,每次循环i的值增加1,循环条件是i <= 10。在循环体内部,有一个if语句判断i是否等于5。当i等于5时,遇到break语句,此时循环立即终止。所以程序只会输出1 2 3 4,然后跳过循环中i = 5及之后的部分,直接执行循环后面的printf语句,输出 “循环结束后的语句”。

continue 在循环中的作用:

continue语句用于跳过当前循环体中剩余的语句,直接进入下一次循环的迭代。可以想象为在环形跑道上跑步,当遇到一个小障碍(continue)时,跳过当前这一步的一些动作,直接进入下一圈。

#include <stdio.h> int main() { int i; for (i = 1; i <= 10; i++) { if (i == 5) { continue; } printf("%d ", i); } printf("\n循环结束后的语句"); return 0; }

//代码解释  在这个for循环中,当i等于5时,continue语句被执行。此时,printf("%d ", i);这一语句被跳过,程序直接进入下一次循环,即i变为6继续循环。所以程序会输出1 2 3 4 6 7 8 9 10,最后执行循环后面的printf语句,输出 “循环结束后的语句”。

break在嵌套循环中的执行顺序:

当在嵌套循环中使用break关键字时,它会终止包含该break语句的最内层循环,然后程序继续执行外层循环的下一次迭代(如果外层循环还有未完成的迭代)。

continue在嵌套循环中的执行顺序:

在嵌套循环中,continue关键字只会影响包含它的最内层循环。当执行continue语句时,内层循环的本次迭代剩余部分被跳过,直接进入内层循环的下一次迭代。外层循环不受内层循环中continue语句的直接影响,会按照自己的节奏继续执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值