卡码网C++基础课|3.A+B问题III

忙完了一段学习任务,应该会每天打卡了吧~希望如此

今天的问题还是A+B,问题没有给出行数n了,也就是说如果没有终止条件,输入将会一直进行下去。所以,题目给出限定,当a和b同时为0时,输入就停止了,并且该行输入的a和b是不需要计算的。

因为输入没有限制行数,我们可以直接使用之前所提到的链式输入和while循环实现:

while(cin >> a >> b){
    
}

当然,前面需要a和b的定义,这里便不赘述。

对于终止条件,我们需要使用if语句来进行判断:

if (condition){
    /代码块
}

中的条件为真则运行代码块中的内容,否则继续执行下面的内容。对于本题来说,我们需要在a和b同时为0的时候停止循环,所以我们对a和b进行判断,使用关系运算符“==”来比较它们和0的关系。这个关系运算符属于比较特殊的了,因为你不能写等号=来进行判断,在C++中,这会被视为一种定义或者赋值等操作。其他的常用的关系运算符比如<=,>=,>,<都与平常数学中使用方法一致。除此之外,还有不等于的表示是!=,这个需要注意一下。

我们想要同时判断a和b是否等于0,还需要引入逻辑运算符。C++中提供了几种运算符:

1.逻辑与 && 当两边条件判断都为真时,结果才是真;

2.逻辑或 || 当两边条件判断至少有一个为真时,结果便是真,数学(电)中常说有1则1,全0才0;

3.逻辑非 ! 将条件取反后如果真则为真

if(a==0 && b==0),这样我们便实现了分别对a和b的判断。但是还需要填充代码块,我们需要在a和b同时为0时执行代码块中的内容,而要求是不进行运算。所以我们需要跳出循环while,可以通过break语句实现:

if (a == 0 && b == 0){
    break;
}

break会直接跳出最近距离的循环。

当正常输入时,我们只需要输出a和b的加和就好了:

#include<iostream>
using namespace std;
int main(){
    int a, b;
    while(cin >> a >> b){
        if (a == 0 && b == 0){
            break;
        }
        cout << a + b << endl;
    }
    return 0;
}

C++ primer plus上有对逻辑运算符的一些补充:

AND也就是逻辑与的优先级要大于OR(逻辑或),但是它们优先级都低于关系运算符,所以我们如果有这样的表达式:

a < 1 && b > 2 || c < 3

也就是((a < 1) && (b > 2)) || (c < 3)了。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值