今天终于要学习循环语句了,我个人认为循环语句就是C语言的精髓啊。不然的话,我要一门计算机语言做什么,明明人类本身的语言更加通俗易懂可以解决生活中绝大多数问题了,但是循环就是解决了人力无法做到的事情,它可以在那里循环执行程序一整天直到得到想要的结果,但是人不行。比如说你收到了一个数据包,这个作为汽车从业者经常会收到,你想要查看BMS发送的报文,你可能得到一个1s一次的EXCEL数据(真实频率远大于这个),这个数据采集了5min,那么就是300行的数据,每一行都有一个全量信号的各种值(比如我有300个信号),你要在这上千的数据里找到自己想要的故障时刻信息,靠人力是非常困难的。更有甚者你会收到一个文件夹的数据,在这几十个EXCEL中找到故障时刻的数据,是不是很头大?哎,这时循环语句就很好使,你编写一个程序去遍历这个文件包,计算机几秒就可以找到所有符合你设置条件的数据位置。
进入正题,老师让描述这么个逻辑,写代码写到30000后拿到好offer,代码如下。这个代码解读下,首先创建一个变量line赋值为0.就是while后面接条件(line小于30000)这个时候进行大括号里面的循环。这个循环里先print一下写代码以及line的值,然后再执行line加一的操作,然后会回到开始判断line的值,如果小于30000继续执行操作,以此类推最后判断line==30000后执行if的操作并且终结。
int main()
{
int line = 0;
while (line < 30000)
{
printf("写代码:%d\n",line);
line++;
}
if (line==30000)
{
printf("好Offer\n");
}
return 0;
}
得到如下结果
稍微改动了下if后面的值得到还是这个结果,也就是进入IF就会停止循环,不管咋设置if的语句。
这节课没有继续循环语句,因为只是先介绍一下。然后就到了函数和数组部分,有点python基础的基本看一下就ok了。
函数:比如我想要一个这种逻辑,输入两个数求和,我可以写
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d%d", &num1, &num2);
int sum = num1 + num2;
printf("%d\n", sum);
return 0;
}
通过函数的方法解题呢,如下
int Add(int x, int y)
{
int z = 0;
z = x +y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d%d", &num1, &num2);
int sum = Add(num1, num2);
printf("%d\n", sum);
return 0;
}
运行结果如下
注意这里如果把Z=X+Y这里写成z=x*y,那么这个函数就变成了一个乘法函数,所以相当于这个函数是我们可以自己定义到底怎么运算的。
数组:我要创建一组数的时候不能一个一个的打int a=0一直打到100吧,所以我们用如下方式
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
char ch[5] = {'a','b','c'};//不完全初始化,剩余值默认为0
return 0;
}
我建立如下后int arr[10] = { 1,2,3,4,5,6,7,8,9,10 },10个数字,我需要访问数组中某一个值的时候通过下标0到9来访问,比如我想要访问数组中第3个元素我就打arr[2]。
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
char ch[5] = {'a','b','c'};//不完全初始化,剩余值默认为0
int i = 0;
while (i < 10)
{
printf("%d\n", arr[i]);
i = i + 1;
}
return 0;
}
打印后得到如下