C语言基础第七课循环结构程序设计——第一节概述、goto语句构成循环、while循环、累加累乘的循环实现、自增自减运算符,复合赋值运算符、程序计算:1+2+3+...+100之和。编写程序计算n的阶乘

一、概述

循环:就是在满足一定条件的时候,反复执行某个程序段的过程
比如输出100000行
hello,worrld!
就算你粘贴复制一次需要一秒
也是100000秒
就算你不停止工作
也需要27.78小时
But采用循环结构只需要两行主体代码就OK
一般来说有四种实现方式

  1. while语句
  2. for语句
  3. do-while语句
  4. goto语句

二、用goto语句构成的循环。

#include <stdio.h>
int main()
{
int i=1;
L1:printf("%d,",i);
i=i+1;
goto L1;
return 0;
}

程序中反复执行的部分就称为循环体
这里就是

L1:printf("%d,",i);
i=i+1;
goto L1;

这是一个无条件的循环,因此它是一个无限循环,或”
者称为‘死循环”。因为没有给她设置停止的指令。
可以通过if进行限定循环条件

用goto语句和if语句构成的循环。

#include <stdio. h>
int main(void)
{
int i=1;
L1:if(i<=5)	
//这里限定了循环次数
//在if子句中通过i这个变量
//来实现了循环次数的计算,
//我们一般称其为计数器
{
	printf("%d,",i);
	i=i+1;
	goto L1;
}
return 0;
}

这种利用goto语句构成的循环不多

三、while循环:while语句构成的循环

while语句的格式:
while(表达式)← 循环条件
单条语句←循环体
循环条件:
关系表达式或逻辑表达式。
循环体:
只能是单条语句,若需要多条语句,须用
花括号括起来,构成一条复合语句。
结构大概就是下面的图,只要是真的话,就直接的回到判断条件然后进行循环直到为假,为假然后就直接退出循环了。
在这里插入图片描述

例1. while循环示例。

#include <stdio.h>
int main()
{
int i=1;
while(i<=5)
{
	printf("%d,",i);
	i=i+1;
}
return 0;
}

四、编程序计算:1+2+3+…+100之和。

思路:

  1. 首先定义变量sum用于存储累加和,并将sum初始化为0;
    这个不初始化的话,可能会有随机数的误差
    2.将1累加到sum中,即sum=sum+1;(此时sum的值为1)
    3.将2累加到sum中,即sum=sum+2;(此时sum的值为1+2之和)



    101.将100累加到sum中,即sum=sum+100;
    (此时sum的值为1+2+3+…+100之和)

写100条???
不可能的
这辈子不可能的

sum=0;
i=1;
while(i<=100)
{ 
sum=sum+i;
i=i+1;
}

编写程序计算n的阶乘,其中n是一个非负整数。
编程思路:
定义变量f用来存储累乘的积,并且给f赋初值为1。==初值1 ==
依次将1到n累乘到变量f中。
f=f1;
f=f
2;… f=f*n;
这n条语句可以归纳为一-个循环。

while(i<=n)
{
f=f*i;
i=i+1;
}

总结一下:累加初值就是0,累乘初值就是1
数据溢出:
运算结果超出了变量的取值范围
在程序中应当根据运算结果的大小,选择合适的数据类型,从而避免产生溢出。
比如说你往int类型变量里面存1000000000试一下

五、自增运算符、自减运算符,以及复合赋值运算符。

  1. 重点:自增运算符++,功能是使得某个变量的值加1,分为前自增和后自增两种。前自增++i这种;后自增i++这种。跟i=i+1一个意思,就是少打几个符号,省点力气
  2. 自减运算符功能是使得某个变量的值减1,分为前自减和后自减两种。前自减–i,后自减i–
  3. 前后自增就是计算还是引用的顺序问题。++i很明显,先进行++,然后再进行引用赋值
i=3;
j=++i;
那么j的值是4,i的值也是4。
j=++i相当于j=(i=i+1)


反之
后自增表达式i++的值
是i加1之前的值
可以称之为先引用后加1
若有i=3;j=i++;
那么j的值是3,i的值是4。
j=i++相当于j=(i=i)+1
  1. 一堆闲杂资料
    自增运算符++
    其基本功能是使得某个变量的值加1;又分为前自增和后自增两种。
    前自增表达式的一般
    形式为:
    ++变量、例如++i
    后自增表达式的一般形式为:
    变量++、例如i++
    从基本功能上来说,自增表达式i++和++i;与赋值表达式i=i+1都是相同的。
    自减运算符–
    其基本功能是使得某个变量的值减1;又分为前自减和后自减两种。
    前自减表达式的一般形式为:
    –变量、例如–i
    后自减表达式的一般形式为:
    变量–、例如i–
    从基本功能上来说,自减表达式i–和--i, 与赋值表达式i=i-1都是相同的。
    前自增(减)表达式与后自增(减)表达式单独使用时,是没有区别的;
    只有作为另一个表达式的一部分时,才有区别。
    例如:
    语句i++;和语句++i;是完全等价的。
    表达式j=i++与表达式j=++i则是完全不同的。(自增自减这个时候就作为赋值表达式的一部分了)
    前自增表达式++i的值,是i加1之后的值。可以称之为先加1后引用。
    例如,若有i=3;j= ++i;,那么j的值是4,i的值也是4。
    可见,j=++i相当于j=(i=i+1)。再如,若有i= 3;printf("%d\n",++i);,则结果是4。
    后自增表达式i++的值,是i加1之前的值。可以称之为先引用后加1。
    例如,若有i=3;j=i++;,那么j的值是3,i的值是4。
    可见,j=i++相当于i=(i=i)+1。
    再如,若有i=3: printf("%d\n" ,i++);,则结果是3。

  2. 注意事项(优先级)
    优先级:后自增>取负
    例如,若有i=3;printf("%d\n",-i++);,则结果是-3。
    因为后自增的优先级高于取负运算符,因此-i++等价于-(i++)。
    先进行的是引用,因为是后自增,所以是个3,但这个时候i其实本身是4。对3取负就是-3.
    多绕一下吧

  3. 复合赋值运算符:就是将算术运算符或者位运算符,与赋值运算符
    相结合,而构成的一类运算符

包括
+=
-=
*=
/=
%=等
少用这玩意就行了
别把自己绕晕了
a+=3
相当于
a=a+3

X*=y+8
相当于
x=x*(y+8)
而不是x=x*y+8 
个人建议少用少用少用
好处就是提高简洁性
但是降低了可读性
如果你看着都得反应一会
读程序本来就不高
就别给自己挖坑了
别再题目都搞错了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值