频道栏目
读书频道 > 软件开发 > C++ > C++ Primer中文版(第5版)
1.4.4 if语句
2013-09-07 11:25:10     我来说两句
收藏   我要投稿

本文所属图书 > C++ Primer中文版(第5版)

这本久负盛名的 C++经典教程,时隔八年之久,终迎来史无前例的重大升级。除令全球无数程序员从中受益,甚至为之迷醉的——C++ 大师 Stanley B. Lippman 的丰富实践经验,C++标准委员会原负责人 Jos&eacut...  立即去当当网订购

与大多数语言一样,C++也提供了if语句来支持条件执行。我们可以用if语句写一个程序,来统计在输入中每个值连续出现了多少次:

#include <iostream>

int main()

{

   // currVal是我们正在统计的数;我们将读入的新值存入val

   int currVal = 0, val = 0;

   // 读取第一个数,并确保确实有数据可以处理

   if (std::cin >> currVal) {

      int cnt = 1;              // 保存我们正在处理的当前值的个数

        while (std::cin >> val) {     // 读取剩余的数

if (val == currVal)   // 如果值相同

               ++cnt;             // 将cnt加1

          else {                 // 否则,打印前一个值的个数

            std::cout << currVal << " occurs "

              << cnt << " times" << std::endl;

            currVal = val;     // 记住新值

            cnt = 1;       // 重置计数器

}

      } // while循环在这里结束

      // 记住打印文件中最后一个值的个数

       std::cout << currVal << " occurs "

       << cnt << " times" << std::endl;

} // 最外层的if语句在这里结束

return 0;

}

如果我们输入如下内容:

42 42 42 42 42 55 55 62 100 100 100

则输出应该是:

42 occurs 5 times

55 occurs 2 times

62 occurs 1 times

100 occurs 3 times

有了之前多个程序的基础,你对这个程序中的大部分代码应该比较熟悉了。程序以两个变量val和currVal的定义开始:currVal记录我们正在统计出现次数的那个数;val则保存从输入读取的每个数。与之前的程序相比,新的内容就是两个if语句。第一条if语句

if (std::cin >> currVal) {

    // ...

} //最外层的if语句在这里结束

保证输入不为空。与while语句类似,if也对一个条件进行求值。第一条if语句的条件是读取一个数值存入currVal中。如果读取成功,则条件为真,我们继续执行条件之后的语句块。该语句块以左花括号开始,以return语句之前的右花括号结束。

如果需要统计出现次数的值,我们就定义cnt,用来统计每个数值连续出现的次数。与上一小节的程序类似,我们用一个while循环反复从标准输入读取整数。

while的循环体是一个语句块,它包含了第二条if语句:

if (val == currVal)          // 如果值相同

    ++cnt;                  // 将cnt加1

else {                       // 否则,打印前一个值的个数

    std::cout << currVal << " occurs "

               << cnt << " times" << std::endl;

    currVal = val;          // 记住新值

    cnt = 1;                // 重置计数器

}

这条if语句中的条件使用了相等运算符(==)来检测val是否等于currVal。如果是,我们执行紧跟在条件之后的语句。这条语句将cnt增加1,表明我们再次看到了currVal。

如果条件为假,即val不等于currVal,则执行else之后的语句。这条语句是一个由一条输出语句和两条赋值语句组成的语句块。输出语句打印我们刚刚统计完的值的出现次数。赋值语句将cnt重置为1,将currVal重置为刚刚读入的值val。

C++用=进行赋值,用==作为相等运算符。两个运算符都可以出现在条件中。一个常见的错误是想在条件中使用==(相等判断),却误用了=。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.4.3 读取数量不定的输入数据
下一篇:1.4.4节练习
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站