C流程控制语句

前言:更多内容请看总纲《嵌入式C/C++学习路》

一、分支语句

1.if语句

  • 流程控制语句可以让程序中的语句不再从上到下逐条执行
  • 分支是一种流程控制语句,可以把程序中某些语句忽略掉不去执行
  • if关键字可以用来编写分支语句,只有当表达式为真时,才会执行对应语句
  • 如果多个分支的逻辑表达式之间存在互斥关系,则可以采用else关键字把他们合并成一个分支语句
  • 一个分支语句中的多个逻辑表达式之间如果具有互补关系,则可以把最后一个逻辑表达式省略

例如:从终端获取一个数字,判断 正数,负数,零

#include<stdio.h>
int main(){
		int num = 0;
		printf("请输入一个整数:");
		scanf("%d",&num);
		if(num >= 0){
			printf("正数\n");
		}
		else if (num < 0){
			printf("负数\n");
		}
		else {
			printf("零\n");
		}
		return 0;
}

2.switch语句

  • 如果有一组数字,数字的个数有限,每个数字对应一组专门的处理语句。这种情况的分支可以采用下面的语法实实现:

例:在控制台获取4个数字0,1,2,3,对应输出四个季节

#include <stdio.h>
int main(){
		int season = 0;
		printf("请输入一个代表季节的数字:");
		scanf("%d",&season);
		switch(season){
			case 0:
				printf("春天\n");
				break;
			case 1:
				printf("夏天\n");
				break;
			case 2:
				printf("秋天\n");
				break;
			case 3:
				printf("冬天\n");
				break;
			default:   // 如果上述情况都不匹配,执行该语句
				printf("所有情况都不匹配,请检查输入是否为正整数!");
				break;
		}
		return 0;
}
  • switch后面的()里面不一定是一个变量,也可以是一个公式,如果例题需求改为:输入的数字对4取余,对应四个季节,那么可以改为 switch(season % 4)
  • default为case情况都不匹配的情况,才执行

二、循环语句

  • 循环语句可以让一组语句多次反复执行

1.for语句

  • for( exp1 ; exp2 ; exp3 ) 其中 exp1为变量初始值赋值语句,exp2为循环变量与终值的关系,exp3为循环变量怎么从初值变为终值。exp之间通过分号 ; 隔开
  • 对于下例中的num++,即每次运行完后,num = num +1 ,更多关于自增自减的内容请参考《C语言 自增运算符(前++后++)》

例:在屏幕循环打印12345五个数字

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

请添加图片描述

2.break和continue语句

  • break语句随时终止循环的执行
  • continue语句可以把档次大括号中后面的语句跳过
  • 无论break还是continue,都只对直接包含它的循环语句产生影响
  • 具体区别请参考《C语言break和continue》

3.循环嵌套

  • 循环嵌套结构可以用来解决复杂的循环问题
  • 首先把复杂问题分组,为每组找到一个代表数字。
  • 要求所有组的代表数字是规律变化的。
  • 循环嵌套由两个循环构成,其中一个包含另一个。外循环负责描述组代表数字的变换过程,内循环负责完成某组内的所有处理任务。
  • 循环嵌套结构中内循环的开始数字和结束数字很可能需要根据外循环的循环。

例:采用for循环嵌套打印九九乘法表

#include <stdio.h>

int main()
{
        for (int i = 1; i < 9; i++)
        {
                for (int j = 1; j <= i; j++)
                {
                        printf("%d*%d=%-4d", i, j,i*j);
                }
                printf("\n");
        }

        return 0;
}

请添加图片描述

4.while和do…while语句

  • while关键字也可以用来编写循环
  • for关键字编写的循环和while关键字编写的循环可以互相替代
  • 当编写循环时不容易算出循环的执行次数时就可以考虑采用while关键字
  • while(逻辑表达式){ 反复执行的语句组 }
  • while关键字也可以编写空语句和死循环
  • 采用do…while语句也可以实现循环,格式如下:
  • do{ 语句 } while (逻辑表达式);
  • 使用do…while语句可以保证大括号内部的语句至少执行依次

例:使用while循环输出12345五个数字

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

例 do…while演示

#include<stdio.h>
int main(){
		int num = 1;
		do{
			printf("芜湖~,我执行成功啦!\n");
			num++;
		}while(num < 1);
		return 0;
}

输出结果如下:num = 1不满足while里面num < 1的条件,但是do会先执行{ }里面的内容,所以打印成功。
请添加图片描述
如果改成while形式,打印不成功:
请添加图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Goafan

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值