for循环
for(初始动作;循环条件;每轮动作){? ?}
while循环
while(循环条件){动作}
eg1:(n的阶乘)
int main()
{
int n=0,i=1,result=1;
printf("请输入需要计算阶乘的数字:");
scanf("%d",&n);
for(i=1;i<=n;i++) {
result=result*i;
}
/*for(i=n;i>1;i--){
result=result*i;
}*/
printf("%d! = %d。\n",n,result);
return 0;
}
等价于
#include <stdio.h>
int main()
{
int n=0,i=1,result=1;
printf("请输入需要计算阶乘的数字:");
scanf("%d",&n);
for(i=1;i<=n/*或者i<n+1*/;i++) {
result=result*i;
}
printf("%d!= %d。\n",n,result);
return 0;
}
?有时do_while可以很好的替代while
do{循环体}?while(循环条件)
eg2(确定一个数的位数)
#include <stdio.h>
int main()
{
int x=0,n=0;
printf("请输入需要计数的数字:");
scanf("%d",&x);
n=n+1;
x =x/10;
while( x > 0 ){
n=n+1;
x =x/10;
}
printf("您输入的数字是%d位数。\n",n);
return 0;
}
等价于
#include <stdio.h>
int main()
{
int x=0,n=0;
printf("请输入需要计数的数字:");
scanf("%d",&x);
do{
x =x/10;
n=n+1;
}while( x > 0 );
printf("您输入的数字是%d位数。\n",n);
return 0;
}
注意/**/之间的是可以进行替换的
三者使用时可以参照如下规则
- 有固定循环次数,使用for
- 必须执行一次,用do_while
- 其他情况用while
运算的优先级(这个好难记啊,我脑子记不住)
运算的优先级
优先级别 | 运算符 | 结合性 |
---|
1 | (? ) | 从左到右 | 2 | ! + - + + - - | 从右到左(单目的 +和 -) | 3 | * / % | 从左到右 | 4 | + - | 从左到右 | 5 | <? <=? >? >= | 从左到右 | 6 | ==? != | 从左到右 | 7 | && | 从左到右 | 8 | || | 从左到右 | 9 | = += -= *=? /= %= | 从右到左 |
|