C++primer学习1.4 控制流

一.控制结构:while 语句、for 语句、if 语句

二、读取数量不定的输入数据

三、编译器可以检查出的错误


一、控制结构
顺序、选择、循环三种控制结构。

  1. 循环结构:while、for
  2. 选择结构:if 、case
  3. 顺序结构
  4. while、for的区别:
    . for循环中,循环控制变量的初始化和修改都放在语句头部分,形式简洁,适用于循环次数已知的;
    . while 循环中,循环控制变量的初始化一般放在while 语句之前,循环控制变量的修改一般放在循环体中,比较适用于循环次数不知道的情况

二、从键盘读取未知数目的输入数据

#include<iostream>
int main()
{
int sum=0,value=0;
while(std::cin>>value)
{
sum+=value;
}
std::cout<<"sum is"<<sum<<std::endl;
return 0;
}

注意:

  1. 数据读取操作是在while的循环条件里面完成的 while(std::cin>>value)
  2. while 循环条件的求值就是执行表达式std::cin>>value , 此表达式的意思是从标准输入读取下一个数,保存在value中。输入运算符返回其左侧运算对象,在本例中std::cin。因为,次循环条件是检测std::cin;
  3. 当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符(end -of -file),或遇到一个无效输入(如读入的值不是一个整数),istream对象的状态会变为无效。处于无效状态的istream对象会使条件变为假。 因此,我们的while循环会一直执行直至遇到文件结束符或输入错误.
  4. 文件结束符:在Windows系统中是:Ctrl +Z ,然后按Enter。
  5. 在 UNIX/Linux/MacOS中是Ctrl+D.

三、编译器可以检查出的错误

  1. 语法错误
  2. 类型错误
  3. 声明错误
    编译器无法检测出的错误:逻辑错误,该类错误一般需要单步跟踪等进行调试,工具如GDB等。

实例:

// 求从50-100的所有自然数之和
#include<iostream>
int main()
{

int value=50,sum=0;
while(value<=100)
{
    sum=sum+value;
    value++;

}
std::cout<<"the sum is "<<sum<<std::endl;//sum值为3825  
std::cout<<"value is"<<value<<std::endl;   //**最后value的值是101,而不是50!!**
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值