1,while语句
while是一个条件循环语句
写个例子,用while语句求1-100的整数和
#include <iostream>
int main(int argc, char **argv)
{
int sum=0, num=1;
while(num<=100)
{
sum+=num;
num++;
}
std::cout << "1+2+...+100=" << sum << std::endl;
return 0;
}
编译和运行结果如下:
先定义相关变量,num<=10是循环条件,只要满足这个条件就会执行下面花括号里面的代码块。这个会先判断,然后根据判断结果选择要不要执行下面的代码段。
sum+=num是累加,num++时num加1。
注:num++和++num的区别
单独表示的话,num++和++num达到的效果是一样的
但是sum=++num和sum=num++是不一样的,如果sum此时是0,num是1.
执行sum=++num之后,sum=2,num=2
但是如果执行sum=num++之后,sum=1,num=2
sum=++num先自加再赋值
sum=num++先赋值再自加
2,for语句
for语句更多是控制循环次数
就比如计算一些数相加和,用for语句更方便,先写个例子,计算1-100之间整数和
#include <iostream>
int main(int argc, char **argv)
{
int sum = 0;
for(int i=1;i<=100;i++)
{
sum+=i;
}
std::cout << "1+2+...100=" << sum << std::endl;
return 0;
}
编译和运行结果如下:
两种方法计算结果是一样的
有一点,c语言中的for语句到c99标准才开始支持for(int i=1;i<=100;i++)这种表达方式,C99之前只能这样表示:
先定义i,然后再作为条件
int i=0;
for(i=0;i<=100;i++)
可能是我系统太旧原因(ubuntu12),然后就出现了这个问题,不过也可以加参数-std=c99
总结:
一般while语句用在条件循环,for用在控制循环次数