所谓流程控制是指:“程序怎么执行”或者说“程序执行的顺序”,我们写一个程序,里面有许多代码,这个时候就有一个问题了,这些代码哪些先执行,哪些后执行,某些执行完了之后再执行哪些?这些流程控制所需要的内容。如果不掌握流程控制,就无法写程序。
流程控制分为三类:
1 顺序执行
2 选择执行
3 循环执行
我们上面两种不会去详细去讲,我们只讲循环执行这一部分。
for 循环
for( 表达式1; 表达式2; 表达式3 )
{
语句;
}
下面给大家写一个程序
#include<stdio.h>
int main(void)
{
int i;
int sum = 0;
for(i=1; i<=100; ++i)
{
sum = sum + i ;// 不建议这样写sum+=i;
}
printf("sum = %d\n", sum);
return 0;
}
自增和自减
一直以来,++ 和 – 语法浪费了太多人的时间,说句实在话,++ 和 – 在C语言中根本就不重要,只不过是为了表达简练而已,
作为一个优秀的程序员,在你的代码之中,就不应该同时出现 ++ i 和 i++,–i或者i–, 你要么只使用 i++,要么只使用 ++i。
如果是在搞不懂 a = ++ i;
就可以使用 i++ ,a = i.
a = i ++;
等同于 a = i ,i++;
而且这是一种很好的风格。
练习:
#include<stdio.h>
int main(void)
{
int n = 0;
int i = 0;
int m = 1;
int sum = 0;
printf("请输入 n 的值:");
scanf("%d", &n);
for(i=1; i<=n;i++)
{
m = m * i;
sum = sum + m;
}
printf("sum = %d\n", sum);
return 0;
}
这个程序虽然很短,但是逻辑性很强,所以建议读者记住。因为逻辑性很强,所以很难弄明白,自己可以在纸上分析,把程序每一步都计算明白了。
for和if语句嵌套
#include<stdio.h>
int main(void)
{
int i;
int sum = 0;
for(i = 3; i<100; ++i)
{
if(i%3 == 0)
{
sum = sum + i;
}
}
printf("sum = %d\n", sum);
return 0;
}
如果大家不想使用if语句嵌套
#include<stdio.h>
int main(void)
{
int i;
int sum = 0;
for(i=3; i<100; i+=3)
{
sum = sum + i;
}
printf("sum = %d\n", sum);
return 0;
}
做一个小练习吧
编写程序,输出1-1000之间所有的完全平方数。
#include<stdio.h>
#include<math.h>
int main(void)
{
int i;
int x;
for(i=1; i<1000; ++i)
{
x = sqrt(i);
if(x * x == i){
printf("%d\t", i);
}
}
printf("\n");
return 0;
}
其实这个程序不用sqrt更简单
#include<stdio.h>
int main(void)
{
int i;
for(i=1; i*i<1000; ++i)
{
printf("%d\t",i * i);
}
printf("\n");
return 0;
}
强制类型转换