ps:总结近期所学,供复盘复习使用,有不足请指出,共同进步!
总括:
分支:
-
if
-
switch
循环
-
while
-
for
-
do while
goto语句
语句
C语言中语句可分为五大类:
1. 表达式语句:
eg: 2+3
2. 函数调用语句
3. 控制语句:
-
条件判断语句也叫分支语句:if语句、switch语句;
-
循环执行语句:do while语句、while语句、for语句;
-
转向语句:break语句、goto语句、continue语句、return语句。
![](https://i-blog.csdnimg.cn/blog_migrate/1c54f8e4d4ad16becce224895260c743.png)
4. 复合语句
5. 空语句
控制语句:
分支语句(选择结构)
if语句
-
if..if..else
-
多分支:if...else if...else
else语句
-
一个小例子:
![](https://i-blog.csdnimg.cn/blog_migrate/1df60b70aae98df583ba638c25ddd700.png)
适当的使用{}可以使代码的逻辑更加清楚。
代码风格很重要
//形成良好代码风格:《高质量的c++编程》
else的匹配:是和它离最近的if匹配的
-
练习代码
![](https://i-blog.csdnimg.cn/blog_migrate/ffedb0a50271e7c77d55f2bfe6367eb2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5f000e335ef2cb4adce1d5c14d975296.png)
include <stdio.h>
//其他写法
int main()
{
int i = 1;
while(i <= 100)
{
printf("%d",i);
i += 2;
}
return 0;
}
switch语句
常用于多分支
-
eg:星期x
//用if语句:
int main()
{
int day = 0;
//输入
scanf("%d", &day);
if (1 == day)
printf("星期1\n");
else if(2 ==day)
printf("星期2\n");
else if(3 == day)
printf("星期3\n");
else if(4 == day)
printf("星期4\n");
else if(5 == day)
printf("星期5\n");
else if(6 == day)
printf("星期6\n");
else if(7 == day)
printf("星期天\n");
return 0;
}
//switch语句
int main()
{
int day = 0;
//输入
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期1\n");
break;
case 2:
printf("星期2\n");
break;
case 3:
printf("星期3\n");
break;
case 4:
printf("星期4\n");
break;
case 5:
printf("星期5\n");
break;
case 6:
printf("星期6\n");
break;
case 7:
printf("星期天\n");
break;
default:
printf("选择错误\n");
break;
}
return 0;
}
// //1,2,3,4,5 工作日
// //6,7 休息日
int main()
{
int day = 1;
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("选择错误\n");
break;
}
return 0;
}
-
switch使用注意:
-
break语句使用:
(1)实际效果是把语句列表划分为不同的分支部分
(2)好习惯:在最后一个 case 语句的后面加上一条 break语句。
-
default子句使用
每个switch语句中只能出现一条default语句
-
switch()
{
语句项://语句项即:case语句
}
(1).()内是整型表达式;
eg:
![](https://i-blog.csdnimg.cn/blog_migrate/3f43c1f9ce9716f2e9f4dbf848290020.png)
(2).case语句:case 整形常量表达式:语句;
-
练习代码
switch语句中允许嵌套
![](https://i-blog.csdnimg.cn/blog_migrate/2dc1d6c68ef6291c60a4cec70518284d.png)
循环语句
-
while
-
for
-
do while
while语句
-
引入:
当条件满足的情况下,if语句后的语句执行,否则不执行。
但是这个语句只会执行一次。
由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。
那我们怎么做呢?
C语言中给我们引入了:while语句,可以实现循环。
-
while语法结构:
while(表达式)
循环语句:
流程:
![](https://i-blog.csdnimg.cn/blog_migrate/8beaca507b264397ebcc9a7569942635.png)
eg:
int main()
{
//使用while循环在屏幕上打印1~10
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i++;
}
return 0;
}
whlie语句中的break语句
-
break在while循环中的作用:
只要在循环中遇到break,就停止后期的所有的循环,直接终止循环。
所以:while中的break是用于永久终止循环的。
eg:
![](https://i-blog.csdnimg.cn/blog_migrate/beaf216e3c0b75813a00945fe31301d5.png)
whlie语句中的continue语句
-
continue在while循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,
而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
eg:
![](https://i-blog.csdnimg.cn/blog_migrate/49375fe5e62ec90e16d3ac1f5b57dea8.png)
其他(getchar/putchar了解)
-
scanf输入
-
printf输出
-
getchar读取一个字符
-
putchar输出/打印一个字符
![](https://i-blog.csdnimg.cn/blog_migrate/f779814b8ef80272c2a66300e865e50c.png)
-
getchar 读取到字符的时候返回的是字符的ASCII码值
-
如果读取失败,返回的是 EOF ---> -1 ASCII:0~127
![](https://i-blog.csdnimg.cn/blog_migrate/d6865e6ced695ee940578bd550701b43.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7b9916d25283117844d4c0ed5797f13.png)
以上代码工作原理:
![](https://i-blog.csdnimg.cn/blog_migrate/3daea3f56f841bbedafbad0bb5101e20.png)
//
int main()
{
printf("请输入密码:>");
char password[20] = { 0 };
scanf("%s", password);
//清理缓冲区
while (getchar() != '\n')
{
;
}
printf("请确认密码(Y/N):>");
int ch = getchar();
if (ch == 'Y')
{
printf("确认成功\n");
}
else
{
printf("确认失败\n");
}
return 0;
}
int main()
{
char arr[20] = {0};
scanf("%[^\n]", arr);//[^\n]实际没啥价值
//scanf("%s", arr);
printf("%s\n", arr);
return 0;
}
//只打印数字字符
int main()
{
char ch = '\0';
while ((ch = getchar()) != EOF)
{
if (ch < '0' || ch > '9')
continue;
putchar(ch);
}
return 0;
}
以上是2023-1-8所学内容知识整理复述,有不足请指出,共同进步!
感谢观看!!