for循环和复合赋值
for循环
阶乘
n!=1×2×3×4×...×n
写一个程序,让用户输入n,然后计算输出n!
变量:
显然读用户的输入需要一个int的n,然后计算的结果需要用一个变量保存,可以使int的factor,在计算中需要有一个变量不断地从1递增到n,那可以是int的i
不能算很大的阶乘,为什么?说明我们的代码有错的地方
for循环像一个计数循环:设定一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值一定步进进行调整,比如加1或者减1
1.第一步部分是一个初始化,可以顶一个新的变量:int count=10或者执行赋值:i=10.
2.第二个部分是循环维持的条件。这个条件是先验的,与while循环一样,进入循环之前,首先要检验条件是否满足,条件满足才执行循环;条件不满足就结束循环。
3.第三个部分是步进,即每轮执行了循环体之后,必须执行的表达式。通常我们在这里改变循环变量,进行加或减的操作。
for==对于
for(count=10;count>0;count=count-1)
就读成:“对于一开始的count=10,当 count>0时。重复做循环体,每一轮循环在做完循环体内语句后,使得count递减。”
循环控制变量i只在循环里被使用了,在循环外面它没有 任何用处。因此,我们可以把变量i的定义写到for语句里面去
for==while
for和while之间可以互相替换
for循环
for中每一个表达式都是可以省略的
for(;条件)==while(;条件)
空循环
强烈建议:只要是for语句,就一定跟上一对大括号
循环次数
则循环的次数为n,而循环结束以后,i的值是n。
循环的控制变量i,是选择从0开始还是从1开始,是判断i<n还是判断i<=n,对循环的次数,循环结束后变量的值都有影响
如果有固定次数,用for循环
如果必须执行一次,用do_while循环
其他情况用while循环
复合赋值
5个算术运算符,+-*/%,可以和赋值运算符“=”结合起来,形成复合赋值运算符:“+=”、“-=”、“*=”、“/=”和“%=”
注意两个运算符中间不要有空格