在生活在我们经常要做出选择,程序也是这样,双十一的折扣选择,点外卖的满减选择等,在代码中都需要用判断语句做出判断,举个简单的例子,我们如何用代码判断一个数的奇偶呢?
我们来运行一下,就得到结果
其中if后面括号中的×%==0是一个判断语句,当x%2的值等于0的时候,X%2==0就成立,这个表达式会返回1给if语句,表示条件成立。而我们知道,一个正整数x如果除2等于0,就说明它是偶数,所以程序会输出我们设定的语句:x是偶数。y同理。判断语句格式是if(){}else,注意括号后面不需要分号,括号里面写条件,大括号里面写输出语句。
二、for循环如果我们要计算1+2,可以简单的定义两个变量i=1和j=2,然后让结果等于i+j,就得到了我们想要的。但是,如果我们要计算1+2+3+...+100呢?难道我们要定义100个变量吗?理论上是可以这样做,但是这样的代码写起来就很没有效率。我们将要讲的循环可以很好的解决这个问题。同样我们也通过例子来看一下。
运行一下就得到结果5050啦
i=0表示初始化的内容,i<=100表示循环继续执行的条件(i小于等于100的时候就继续执行这条语句),i++表示在每次循环体执行完之后执行的内容(满足前面的条件后就进行这一步)。5-7行的中括号{}表示循环体的部分,这里我们循环执行s = s + i。在第一次循环时,i=1,执行完循环体后s的值为1。之后执行i++后i=2,符合i<=100的条件,因此进入下一次的循环......以此类推,直到i=101的时候,就可以跳出循环。语句格式是for(){},注意for后面的括号也不需要加分号哦。
三、while循环for循环的另一种写法,基本格式是while(循环条件){循环体;}
我们用while循环写1+2+3+...+100为例
配套循环还有两个语句,continue和break,continue是让代码跳出当前循环,进去下一次循环;break则是跳出整个循环。
四、数组假如我们有一组学生的成绩,在程序中要如何保存这组数据呢?我们可以使用很多的变量,但是更合理的方式是用数组来进行存储。所谓的数组,其实就是按顺序排列好的一组变量。比如int a[5]。对第一个位置的变量赋值为10可以用a[0]=10进行赋值。要取出第一个位置的值,只需要取a[0]即可。
要注意的是,a[i]中的i称之为下标,大部分编程语言中,下标都是从0开始,而不是从1开始。举个例子
我们已经学习了printf函数用于显示数据,而scanf是与之相对的,用来读取数据。它的格式跟printf类似,但是需要注意后面的变量前面需要加上&,表示变量对应的地址。
五、函数在计算1+2+...+100后,可能我们会想着计算1+2+...+1000,或者是2+3+...+101等不同范围的求和,这样我们需要不停地改动代码。如果能够把计算这个部分抽取出来,单独作为一个部分,想要计算的时候,只要输入范围,就可以帮我们计算这个范围求和之后的值。函数就是这样一个工具,它把一个特定的过程抽取出来,作为一个模块,可以重复调用。
在函数的帮助下,当我们有了新的计算需求后,并不用修改原有的代码,只需要增加新的代码即可,代码的可维护性大大提高。
六、结构体一个学生,有学号,有成绩,如何在c语言中表示"学生"这个概念呢?结构体就可以实现。结构体的关键字是struct,定义完之后,就可以用结构体来代表一个学生。
1-4定义了一个结构体student,它包含了int类型的学号number,以及int类型的成绩score。
7-9定义了学生a,学号为1,成绩为100。
10-12定义了学生b,学号为2,成绩为90。
14-16定义了长度为10的结构体数组x,并把a,b放在数组的开头。
七、指针我们定义的变量,无论是int变量,float变量,在执行时最终都会对应到内存里的某个位置。而指针就是指向变量和对象的地址。就像桌面的快捷方式,它指向一个真实的文件。指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递。还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率。
在c语言中,我们可以通过int p 的方式来定义一个int类型的指针。在上面代码第6行中,我们定义了指针p,并把变量i在内存中的地址通过&i的方式获取并赋给p。在第8行中,我们通过p 的方式取到了指针p对应的内存中的值。然而,指针的知识点比较复杂,一开始不理解也没关系,并且也不建议初学者去深究指针知识点,知道有这个概念即可。等以后有需要用到了,再深入学习即可。
OK,今天的分享到此结束,大家有什么问题或者不懂的可以来小毛的群内(群号在主页)交流,大把大佬等着你哦。



