当前位置:网站首页>C语言入门笔记 —— 分支与循环
C语言入门笔记 —— 分支与循环
2022-08-05 05:17:00 【Captain林】
很多新入门的小伙伴都想要深入学习C语言,但因为是刚刚接触,大多对C语言没有整体上的认知,因此很容易会在前期钻入牛角尖,耗费大量时间精力,到头来却是“竹篮打水一场空”、“捡了芝麻丢了西瓜”。因此小编在这里为刚接触C语言的同学们准备了一份C语言入门级笔记(包含概括总结),帮助同学们粗略地建立C语言的整体认知。
码字不易,别忘了先赞后看哦!
看完本篇文章,你将会对C语言分支和循环有更深层次的理解哦!
本篇文章的知识点包括选择语句(if、switch)和循环语句(for、while、do...while)的基本形式和码代码时的易错点,简单的运用形式在此文章将不再复述;
本篇文章由概念、代码、题目结合的方式组成。
目录
1. if语句
1.1形式
*单分支
if(表达式)语句1;else语句2;
*多分支
if(表达式1)语句1;else if(表达式2)语句2;else语句3;
1.2 易错点
*if语句默认只能跟一条语句,多条语句需要加上大括号,否则会出现语法问题
*在没有大括号的情况下,else总是和最近的if语句进行匹配
1.3 好风格
代码风格(可阅读高质量c++编程前三章)
好风格:if+{ }、if(5 == num)、if(1 == n%2)
2. switch语句
2.1 形式
switch(整形表达式)
{
case 整形常量表达式(1,2,3,1+0,......):
语句;
break;
default:
break;
}
2.2 易错点
switch语句后面跟的是整形表达式(int)
若没有 break,代码将继续到下一个case上
2.3 好风格
在最后一个 case 语句的后面加上一条 break语句。
3. while 循环
3.1 形式
while(表达式)循环语句;
3.2 while循环的continue和break
while循环的break,终止循环
while循环的continue,跳过本次循环continue后面的代码,重新回到循环的判断部分
3.3 while循环的特殊运用
3.3.1 字符的读取与打印
getchar()——读取字符
int ch = getchar( );//a
putchar()——打印字符
putchar(ch);
3.3.2 特殊运用
while((ch = getchar()) != EOF)
while((scanf("%d",&n)) != EOF)
scanf()、getchar()共用问题
scanf() <———— 缓冲区 <————键盘
getchar()
问:输入密码12345(\n),是否确定(Y/N);
答:使用循环,如下所示
int a = 0;
while((a = getchar()) != '\n') //用while循环取掉密码之后的字符,包括(\n)
{
; (使用空语句)
}
4. for 循环
4.1 形式
for(表达式1; 表达式2; 表达式3)循环语句;
4.2 for循环中的break、continue
for(i=0; i<10; i++)
continue会跳过continue后的代码,但是for循环调整环节(i++)依旧会执行for循环的break,终止循环
4.3 for循环变量的控制
建议:不在for循环体中调整循环变量( i );
使用“前闭后开”的方法;即(i=0;i<10),非(i=0;i<=9);
for循环如果判断部分为假(如k = 0),循环将不会进行
要注意使用k == ??;
5.do...while循环
5.1 形式
do循环语句;while(表达式);
5.2 易错
while后面要有个分号;
6. 综合练习
6.1 阶乘问题
问:计算 1!+2!+3!+……+10!

6.2 二分查找
问:查找有序数组的某一个数
*计算数组两边差
*两边
计算长度(方法一)
sz = sizeof(arr)/sizeof(arr[0])
right = sizeof(arr)/sizeof(arr[0])- 2(求的是下标,有\0)
计算长度(方法二)【要使用头文件#include<string.h>】
int right = strlen(arr) - 1

6.3 覆盖问题
*睡眠与清屏
*睡眠【要使用头文件#include<windows.h>】
sleep(1000)—— 延迟
*清屏【要使用头文件#include<stdlib.h>】
system("cls"); —— 清屏

6.5 模拟登录
问:模拟用户登录(只有三次机会)
*两个字符串不能用 == 比较
*两个字符串不能用 == 比较
要用库函数(strcmp)比较
strcmp(password,"abcdef")== 0;
需要的头文件#include<string.h>
*数组名本来就是地址
*数组名本来就是地址
char password[20] = {0};
scanf("%s",password)

6.6 0~100猜字游戏
问:制作一个0~100猜字游戏
*生成随机数
*生成随机数
#include<stdlib.h>
#include<time.h>
srand((unsigned int)time(NULL); ——时间戳,C语言提供了一个函数time,可以返回一个时间戳
int ret = rand() - 范围是(0~32767)——头文件#include<stdlib.h>



结语
看到这里,相信老铁们对C语言已经有了更深刻的了解。我是计算机海洋的新进船长Captain_ldx,如果我的文章能对您有帮助的话,麻烦各位观众姥爷们点赞、收藏、关注我吧!如果你对我的文章有任何问题或者意见,欢迎在评论区给我留言。后期重点注释和知识点将持续更新......
边栏推荐
- [Database and SQL study notes] 9. (T-SQL language) Define variables, advanced queries, process control (conditions, loops, etc.)
- 七、请求处理——Map、Model类型参数处理原理
- 【ts】typescript高阶:映射类型与keyof
- 电子产品量产工具(5)- 页面系统实现
- 「实用」运维新手一定不能错过的17 个技巧
- Polygon计算每一个角的角度
- 一个小时教你如何掌握ts基础
- 记我的第一篇CCF-A会议论文|在经历六次被拒之后,我的论文终于中啦,耶!
- 深度学习系列(一)简介、线性回归与成本函数
- Service
猜你喜欢

教你如何封装功能组件和页面组件

CVPR 2022 | 70% memory savings, 2x faster training

最简单的防抖节流理解法

物联网-广域网技术之NB-IoT
![[Kaggle project actual combat record] Steps and ideas sharing of a picture classification project - taking leaf classification as an example (using Pytorch)](/img/7d/7f1301c30034f1c247d41f04c40244.png)
[Kaggle project actual combat record] Steps and ideas sharing of a picture classification project - taking leaf classification as an example (using Pytorch)

沁恒MCU从EVT中提取文件建立MounRiver独立工程

十、视图解析原理与源码分析

OSPF故障排除办法

网络通信及相关函数介绍

1004 成绩排名 (20 分)
随机推荐
七、请求处理——Map、Model类型参数处理原理
11%的参数就能优于Swin,微软提出快速预训练蒸馏方法TinyViT
MySQL
OSPF故障排除办法
伪RTOS-ProroThread在CH573芯片上的移植
idea 快速日志
LeetCode刷题之第746题
基于STM32F407的一个温度传感器报警系统(用的是DS18B20温度传感器,4针0.96寸OLED显示屏,并且附带日期显示)
leetCode刷题之第31题
PID详解
关于存储IOPS你必须了解的概念
沁恒MCU从EVT中提取文件建立MounRiver独立工程
【数据库和SQL学习笔记】6.SELECT查询4:嵌套查询、对查询结果进行操作
面向小白的深度学习代码库,一行代码实现30+中attention机制。
对象比较
Polygon计算每一个角的角度
八、响应处理——ReturnValueHandler匹配返回值处理器并处理返回值原理解析
【Pytorch学习笔记】10.如何快速创建一个自己的Dataset数据集对象(继承Dataset类并重写对应方法)
It turns out that the MAE proposed by He Yuming is still a kind of data enhancement
The University of Göttingen proposed CLIPSeg, a model that can perform three segmentation tasks at the same time