C语言详细分析讲解流程控制语句用法

 更新时间:2022年05月06日 09:30:48   作者:龟π气功  
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 ,更多关于自增自减的内容请参考《探讨++i与i++哪个效率更高》

例:在屏幕循环打印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形式,打印不成功:

到此这篇关于C语言详细分析讲解流程控制语句用法的文章就介绍到这了,更多相关C语言流程控制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言中宏和函数的9个区别详解

    C语言中宏和函数的9个区别详解

    C语言中的宏和函数是非常相似的,它们都可以完成类似的功能。本文为大家整理了C语言中宏和函数的9个区别,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-04-04
  • C语言详细分析不同类型数据在内存中的存储

    C语言详细分析不同类型数据在内存中的存储

    使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储各种数据类型的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么
    2022-08-08
  • 华为面试题数字大小写转换

    华为面试题数字大小写转换

    一个四位数,如1024,1004,打印出他们的中文形式,如果一千零二十四,一千零四,大家参考使用吧
    2013-12-12
  • 详解C++中的四种类型转换运算符

    详解C++中的四种类型转换运算符

    隐式类型转换是安全的,显式类型转换是有风险的,C语言之所以增加强制类型转换的语法,就是为了强调风险,让程序员意识到自己在做什么,本文将给大家详细介绍一下C++中的四种类型转换运算符,需要的朋友可以参考下
    2023-09-09
  • C++ STL中的容器适配器实现

    C++ STL中的容器适配器实现

    这篇文章主要介绍了C++ STL中的容器适配器实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 浅析顺序结构存储的栈

    浅析顺序结构存储的栈

    这篇文章主要介绍了顺序结构存储的栈,有需要的朋友可以参考一下
    2014-01-01
  • MFC串口通信发送16进制数据的方法

    MFC串口通信发送16进制数据的方法

    这篇文章主要为大家详细介绍了MFC串口通信发送16进制数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • C++11新特性std::make_tuple的使用

    C++11新特性std::make_tuple的使用

    这篇文章主要介绍了C++11新特性std::make_tuple的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • C++实现优先队列的示例详解

    C++实现优先队列的示例详解

    普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。本文将用C++实现优先队列,需要的可以参考一下
    2022-06-06
  • C++库std::flush的具体使用

    C++库std::flush的具体使用

    std::flush是C++标准库中的一个操作符,用于刷新输出流,本文主要介绍了C++库std::flush的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02

最新评论