当前位置:C++技术网 > 精选软件 > C++ Primer Plus 6th 6.10 复习题 第1题 if else的效率问题

C++ Primer Plus 6th 6.10 复习题 第1题 if else的效率问题

更新时间:2019-05-04 12:22:45浏览次数:1+次

题目:
1.请看下面两个计算空格和换行符数目的代码片段:
版本1:

while  (cin.get (ch))    // quit on eof
{
    if(ch == ' ')
        spaces++;
    if(ch=='\n')
        newlines++;
}

版本2:

while(cin.get(ch)) // quit on eof
{
    if (ch == ' ')
        spaces++;
    else if(ch=='\n')
        newlines++;
}

第二种格式比第一种格式好在哪里呢?


答案:  

这两个版本将给出相同的答案,但if else 版本的效率更高。例如,考虑当ch为空格时的情况。版本1对空格加1,然后看它是否为换行符。这将浪费时间,因为程序已经知道ch为空格,因此它不是换行符。在这种情况下,版本2将不会查看字符是否为换行符。

C++技术网辅导详解解答:

    答案解释的已经很清楚了,这里就不赘述了。