一、
学习目标:
对C有进一步的认识
学习内容:
1:Switch语句:
语法:Switch (整型表达式)
{
语句项;//一般为case 整型常量表达式;语句项;
}
养成好习惯:break语句要在相应的地方加上,即使是最后一句话。
2:循环语句:
总的分类:while、for、do while
①:while:
语法结构:
while(表达式)
{
循环语句;
}
流程图:
注意:
(a)while语句和if语句相似:循环语句体不加{}的话,当表达式条件为真时,只会执行第一句语句。
(b)对continue的理解:跳过本次循环continue后面的语句,然后直接去while循环的判断部分。
②for循环:
(a):有了while为什么还有for呢?
由于while循环的初始化、判断、调整三部分距离有可能由于代码量比较大而分隔较远。第一不好操作,第二容易出问题。for循环可以很好的克服这两个问题。
(b):语法:
for(表达式1;表达式2;表达式3)
{
循环语句;
}
(c):for循环的流程图:
(d):for循环控制变量的一些建议:
第一:不可在for循环体内修改控制变量,防止for循环失控
第二:for语句中的判断,一般使用“左闭右开”区间,但不是硬性规定。
(e):一些for循环的变种:
变种1:
#include <stdio.h>
int main()
{
int i=0;
int j=0;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
printf("hehe\n");
}
}
return 0;
}
上述为打印100个hehe.
#include <stdio.h>
int main()
{
int i=0;
int j=0;
for(;i<10;i++)
{
for(;j<10;j++)
{
printf("hehe\n");
}
}
return 0;
}
上述代码只打印10个hehe。
变种2:
for(x=0,y=0;x<2&&y<5;++x,y++)
③:do while
语法:
do
{
循环体;
}
while(表达式);
流程图:
特点:循环至少执行一次,使用场景有限,不是经常使用。
一个小知识点:
(a):0x123:表示十六进制的数:3*16^0+2*16^1+1*16^2
(b):0123:表示八进制的数:3*8^0+2*8^1+1*8^2
猜数字游戏:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("****************************\n");
printf("********1.play**************\n");
printf("********0.exit**************\n");
printf("****************************\n");
}
void game()
{
int ret = 0;
int input = 0;
srand((unsigned )time(null));
ret = rand()%100+1;
while (1)
{
printf("请输入猜的数字:>\n");
scanf("%d", &input);
if (ret > input)
{
printf("猜小了\n");
}
else if (ret < input)
{
printf("猜大了\n");
}
else
{
printf("恭喜你猜对了!\n");
break;//猜对为止
}
}
}
int main()
{
int input1 = 0;
do
{
menu();
printf("请选择:>\n");
scanf("%d", &input1);
switch (input1)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入错误,请重新输入:>\n");
break;
}
} while (input1);
return 0;
}
④:goto语句:(建议少使用),在某些场合下goto语句还是用的着 的,最常见的就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层甚至多层循环时可以使用。
一些小的知识点:
(a):数组的大小必须是常量
(b):
printf("%d\n",strlen("c:\test\121"));
打印几个字符,打印结果是什么:
答案:7个,结果为:c estQ
(c):int arr[10]={0};//不完全初始化。0只给数组第一个元素,其余默认都为0;
(d):光的define、include都不是关键字,只有#denfine、#include才可以使用,而且此时他们叫预处理指令,在预编译时使用。
(e):如果想输出一个保留一位小数的浮点数:
printf("%.1f\n",num);
(f):scanf()的用法:http://c.biancheng.net/view/160.html
学习时间:
2021.9.13
学习产出:
1、 技术笔记 2 遍
2、CSDN 技术博客 2 篇
3、 gitee3次贡献度