分支语句、循环语句、函数初步
分支语句
对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。
if_else语句
- 在书写if_else语句时,要注意用花括号,有花括号时作用域为整个花括号内,没有则仅下一句为作用域。
if_else语句的使用
单分支语句
#include<stdio.h>
int main()
{int a=0,b=0,max=0;scanf("%d%d",&a,&b);if(a>b){max=a; //无论几句代码都写代码块里,要有良好的代码风格}else{max=b;}printf("max=%d\n",max);return 0;
if_else多分支语句
下面给出统计字母个数的示例:
#include<stdio.h>
#include<ctype.h>
int main()
{int i = 0;char arr[26] = { 0 };char p[100] = { 0 }; //用来接收输入的字符串char ch;scanf_s("%s", p, 100);for (i = 0; p[i]!='\0'; i++){if (p[i] >='a' && p[i] <='z') //将字母分成大小写分别处理{arr[p[i] - 'a'] += 1; //用对应字符减去'a'字符则为对应的数组元素,并且个数加1;}else if(p[i] >= 'A' &&p[i] <= 'Z')//多分支语句用else if,可以有很多个{arr[p[i] - 'A'] += 1;}}for (i = 0; i < 26; i++){printf("%d\n", arr[i]);}return 0;
}
- if语句还可以嵌套if语句,在嵌套使用时,要注意if和else的配对问题,c语言规定,else总是和它前面最近的if配对。
if_else多分支语句
switch是另外一种选择结构的语句,用来替代简单的、用多分支的if_else语句
基本格式如下(仅说明问题):
switch(整型变量表达式)
{case 常量1:语句块1;break;
case 常量2:语句块2;break;
case 常量3:语句块3;break;
default:语句;break; //若上述情况都不满足则执行此条件;此句不是必须的
此处以打印学生信息为例:
#include<stdio.h>
int main()
{int a = 0;printf("输入要查询的数字")scanf_s("%d", &a);switch (a){case 1:printf("增加学生信息\n");break;case 2:printf("删除学生信息\n");break;case 3:printf("查找学生信息\n");break;case 4:printf("改正学生信息\n");break;case 5:printf("退出系统\n");}return 0;
}
使用switch语句需要注意:
- 只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
- switch()的参数类型不能为浮点数,字符串。(必须是整型类型)。
- case标签必须是常量表达式(constantExpression),如42或者’4’+20。
- case标签必须是惟一常量;也就是说,不允许两个case具有相同的常量值
- 当变量表达式所表达的值与其中一个case语句中的常量值相符时,就执行此case语句后面的程序,并依次去执行后面所有case语句中的程序,除非遇到 break语句跳出switch为止;
函数初步
函数的分类
- 编译系统预定义的,称为库函数或标准函数,如一些常用的数学计算函数、字符串处理函数、图形处理函数、标准输入输出函数等
- 用户自定义函数,用户可以根据需要将某个具有相对独立功能的程序定义为函数。自定义的函数构成:返回类型+函数名+形参列表+函数体
函数的特点
- 根本特点:功能单一
- 其他特点:小模块,一般不超过50行,超过则很难把握功能
- 函数只有在调用的时候才分配空间
函数的使用
定义函数时,会涉及若干个变量,即形参和实参:
- 形式参数(形参)︰只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。
- 实参(实际参数)︰调用函数时给出的参数包含了实实在在的数据,所以称为实际参数,简称实参。
- 形参和实参的功能是传递数据,发生函数调用时,实参的值会传递给形参。
将变量名赋给形参的时候是一个压栈的过程
在函数调用过程中,会出现传值和传地址的概念:传值是将实参传进调用函数中,函数改变形参的值不改变实参的值,传地址时形参改变实参跟着改变。
函数的调用机制:
1.建立栈空间
2.为被调用的函数中的局部变量分派空间,完成参数传递
3.现场保护:主函数运行状态和返回地址入栈
4.执行被调用的函数体
5.释放被调用函数中被占用的空间
分支语句、循环语句、函数初步相关推荐
- 【Linux学习笔记④】——Shell程序设计【变量 输入与输出 条件表达式 判断语句 循环语句 Shell函数】
⌛️ 文章目录 一.Shell 概述 二.Shell 脚本的定义与执行 2.1 Shell 脚本的定义 2.2 Shell 脚本的执行 三.Shell 变量 3.1 用户自定义变量 3.2 环境变量 ...
- C语言全网最详细的分支和循环语句讲解
文章目录 前言 一.什么是语句? 二.分支语句(选择结构) 1.if语句 1.1 悬空else 1.2 if书写形式的对比 1.3 小小练习巩固一下 2.switch语句 2.1 在switch语句中 ...
- php中可以实现分支,PHP中的分支及循环语句
这次实践的都是PHP7的语法. 感觉是以前的5差别不是那么大,只是希望越来越快吧. $looking = isset($_GET['title']) || isset($_GET['author']) ...
- C语言中阶第一篇:分支和循环语句透析,包含getchar和scanf的详细介绍(本篇循环只到while)
业精于勤荒于嬉,行成于思毁于随. 在笔者初阶的文章里,已经介绍过分支和循环语句,不过由于是初阶,所以并不细致,今天我们正式打开了中阶的大门,开始一步一步的深入C语言的学习. C语言是结构化的程序设计语 ...
- Java判断语句 循环语句
主题: 判断语句 循环语句 一.判断语句 1.单分支 1 if(条件){ 2 3 //此处插入代码,表示if中的条件成立执行的语句 4 } 注意: 1.条件 必须 boolean 2.if只带 一行代 ...
- 第2节-分支和循环语句
目录 1.什么是语句 2.分支语句(选择结构) 2.1.if语句 2.1.1.悬空else 2.1.2.if书写形式的对比 2.1.3练习 2.2.switch语句 2.2.1.在switch语句中的 ...
- 分支与循环语句C语言
c语言是一门 结构化 的程序设计语言 分为以下三种结构 顺序结构 选择结构 循环结构 一.分支语句 if语句 单分支种类 种类1: if(表达式) 语句1 种类2: if(表达式) 语句1: else ...
- javascript随堂练习(分支,循环语句)
var flag = true;//while语句执行:while(flag){//获取用户输入选择信息号码:(字符串中的 \n 为换行的效果) var num = prompt('你好,我是小娜\n ...
- 【软件测试】结构化分支和循环语句的白盒测试
文章目录 黑盒测试与白盒测试 分支语句的白盒测试 测试用例设计方法 举例 画流程图 设计语句覆盖测试用例 设计分支覆盖测试用例 设计路径覆盖测试用例 循环语句的白盒测试 简单循环 嵌套循环 连锁循环 ...
- 初始C语言-分支与循环语句
一.语句 1. 什么是语句? C语句可分为以下五类: 1. 表达式语句 2. 函数调用语句 3. 控制语句 4. 复合语句 5. 空语句 本章后面介绍的是控制语句. 2. 控制语句: 用于控制程序的执 ...
最新文章
- javascript组件_是的,JavaScript运行Swift。 无论如何都要构建您的组件库。
- Why HashMap Extends AbstractMap and Implement Map
- 文件系统损坏导致数据文件异常恢复----惜分飞
- 从上往下 流式布局_揭秘做好网站结构优化的4步(下)
- Qt Creator桌面平台
- 中国9大民居建筑,你都认识吗?
- lnmp mysql 10061问题
- Springboot+Mysql物流快递在线寄查快递系统
- c语言枚举和结构体的区别,全面了解结构体、联合体和枚举类型
- 千万青年学子,双击电子版微积分
- 全国快递物流查询公司mysql数据库语句
- 云服务器里存放数据安全吗
- 计算机网络微课笔记03
- 2018年上半年软考信息安全工程师上午真题及答案解析
- Unity 动画系统:Animator
- 圆桌共话:如何冲破数据高墙,连线“数智未来”?
- drf使用mongodb开发vsp平台设计
- 解决 ubuntu 14.04下,eclipse adt-bundle-linux 闪退的问题,最新ADT-23.0.7
- [offer已拿]字节跳动游戏研发面经
- linux编译input驱动,Linux驱动开发之input子系统
热门文章
- 中国地图_铜板画地图铜地球仪高档办公室装饰用品定制铜版画地图中国地图世界地图定制惠风堂铜雕艺术...
- 用户界面设计十大基本原则
- UICollectionView的headerView、footerView使用以及与UITableView加载headerView、footerView的区别...
- Shell---for循环
- Bootstrap表单验证插件bootstrapValidator使用方法整理
- Xcode中Objc动态调用方法同时避免警告的几个办法
- POJ 3260 多重背包+完全背包
- HDU 4358 树状数组+思路
- 不能上传图片和编辑内容很慢,望改进
- 977dh用vbs通过wsh创建桌面快捷方式,快速启动,修改ie主页的恶意代码 ...