c++ primer 学习之路 (28)第6章 分支语句和逻辑运算符 6.1 if语句 6.2 逻辑表达式与或非

第6章 分支语句和逻辑运算符

6.1 if语句

例如,假设读者希望程序计算输入中的空格数和字符总数,则可以在while循环中使用cin.get(char)来读取字符,然后使用if语句识别空格字符并计算其总数。因为cin.get(char)可以获取空格

#include<iostream>

using namespace std;


int main()
{
    char ch;
    int spaces = 0;
    int total = 0;
    cin.get(ch);
    while (ch != '.')
    {
        if (ch == ' ')
        
        ++spaces;
        ++total;
        cin.get(ch);
    }
    cout << spaces << "spaces, " << total << "characters total in sentence\n";
    system("pause");
    return 0;
}

结果如下:

注意,字符总数中包括按回车键生成的换行符。

  6.2 逻辑表达式

C++可以采用逻辑OR运算符(||),将两个表达式组合在一起。如果原来表达式中的任何一个或全部都为true(或非零),则得到的表达式的值为true;否则,表达式的值为false。

逻辑AND运算符(&&),也是将两个表达式组合成一个表达式。仅当原来的两个表达式都为true时,得到的表达式的值才为true。

在这个程序清单中,一个while循环将值读入到数组。一个测试(i<ArSize)在数组被填满时循环结束,另一个测试(temp>=0)让用户通过输入一个负值来提前结束循环。该程序使用&&运算符将两个测试组合成一个条件。该程序还使用了两条if语句、一条if else语句和一个for循环,因此它演示了本章和第5章的多个主题。

#include<iostream>

using namespace std;

const int ArSize = 6;
int main()
{
    float naaq[ArSize];
    cout << "Enter your NAAQ: " << endl;
    int i = 0;
    float temp;
    cout << "First value: ";
    cin >> temp;
    while (i < ArSize&&temp >= 0)
    {
        naaq[i] = temp;
        ++i;
        if (i < ArSize)
        {
            cout << "Next value: ";
            cin >> temp;

        }

    }
    if (i == 0)
        cout << "No data--bye\n";
    else
    {
        cout << "enter your NAAQ: ";
        float  you;
        cin >> you;
        int count = 0;
        for (int j = 0; j < i; j++)
        
            if (naaq[j] > you)
                ++count;
            cout << count;
            cout << "of your neighbors have greater awareness of\n"
                << "the New age than you do.\n";
        
    }

    system("pause");
    return 0;
}

结过如下:

!运算符将它后面的表达式的真值取反。也是说,如果expression为true,则!expression是false;如果expression为false,则!expression是true。更准确地说,如果expression为true或非零,则!expression为false。

并不是所有的键盘都提供了用作逻辑运算符的符号,因此C++标准提供了另一种表示方式,如表6.3所示。标识符and、or和not都是C++保留字,这意味着不能将它们用作变量名等。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值