卡码网C++基础课 |2. A+B问题Ⅱ

目录

前言

一、题目描述

二、解题思路

1.++和--

2.for循环

3.while循环

4.do while 循环

三、完整代码

总结


前言

仅个人记录所用

源自卡码网的C++基础课

“这门C++基础课 帮助 编程零基础学员快速学习刷算法题所需要的基础语法知识,学完之后,再来刷代码随想录,或者自己去刷编程题,基本不会有语法方面的困惑了,可以帮助大家快速上手刷题。 ”

第二题包含以下内容:

  • for循环的执行流程
  • while循环的终止
  • do while循环的执行流程
  • ++ii++自增运算
  • --ii--自减运算
  • 数据类型转换

一、题目描述

题目描述:计算a+b,但输入方式有所改变。

输入描述:第一行是一个整数N,表示后面会有N行a和b,通过空格隔开。

输出描述:对于输入的每对a和b,你需要在相应的行输出a、b的和。如第二对a和b,对应的和也输出在第二行。

输入示例:

2
2 4
9 21

输出示例:

6
30

提示信息:注意,测试数据不仅仅一组。也就是说,会持续输入N以及后面的a和b

二、解题思路

1.++和--

++i和i++区别

  • ++i 是前缀递增操作符,所谓前缀递增是指,它会先将变量增加 1,然后返回增加后的值,再将返回增加后的值参与别的运算
  • i++ 是后缀递增操作符,它会先返回变量的当前值,然后再将变量增加 1。
int i = 99;
int result = ++i;
//i=100,result=100
int i = 99;
int result = i++;
//i=100, result=99

--i和i--区别

  • --i 是前缀递增操作符,所谓前缀递增是指,它会先将变量减小 1,然后返回减小后的值,再将返回减小后的值参与别的运算
  • i-- 是后缀递增操作符,它会先返回变量的当前值,然后再将变量减小 1。
int i = 100;
int result = --i; // i 先减少为 99,然后赋值给 result
// 现在 i = 99, result = 99
int i = 100;
int result = i--; // 先赋值给 result,然后 i 减少为 99
// 现在 i = 99, result = 100

2.for循环

for语句的语法格式是:

  1. for(初始化语句;条件判断;操作) {
      // 代码块
    }

初次接触,或许不是很好理解,让我们使用计数的例子来类比,假设我们从1数到100

  • 初始化语句:我们计数通常从1开始,也就是说,我们最开始初始化了一个值1
  • 条件:判断值是否小于100,如果小于100,说明我们还没有计数完,需要继续计数,如果等于100,说明已经计数完毕,则结束计数
  • 操作:如果本次计数值小于100,将值加1
  • 重复步骤二,再次判断值是否小于100
  • 重复步骤三,计数值再加1

每次循环,都需要接收输入的a和b,并根据a和b计算出结果,这个代码和上一题的类似,就不再赘述,代码如下:

for(int i = 0; i < n; i++) {
    cin >> a >> b; // 接收 a和b的输入
    cout << a + b << endl; // 输出结果并换行
}

3.while循环

while(条件) {

// 当条件为真时,就会一直执行

}

与上面的for循环对比就会发现,while只有条件判断,而没有初始化语句和操作语句,所以要在while结构之外进行书写。所以按照for循环的逻辑,我们可以这样写代码:

while(cin >> n) {
  // 提前初始化变量i
  var i = 0;
  // 条件判断, 判断 i是否小于n
  while(i < n) {
    cin >> a >> b;
    cout << a + b << endl;
    // 循环控制
    i++;
  }
}

这样这个循环才算是完整的,但是这样做引入了无关变量i, 又加了一个循环控制语句,有没有简化的办法呢?

while (n--) {
    cin >> a >> b;
    cout << a + b << endl;
}
//while 循环中, while(0) 会终止循环, 因为0可以转换成false, false代表条件为假,循环结束。

4.do while 循环

其实除了for循环while循环之外,还有一种循环结构,叫做do while, 它和 while 循环有些类似, 使用方法如下:

do {
    // 循环体(代码块)
} while (条件判断);

do while循环会先去执行循环体内的代码块,然后再检查条件判断,如果条件判断为真,则继续执行下一次循环迭代;如果 条件判断为假,则终止循环,这意味着,无论条件的值如何,我们都至少执行一次循环。

int sum = 0;
int i = 11;
// 先去执行一次循环体中的代码,再去判断条件要不要执行
do {
    sum = sum + i; // 将 sum + i的值赋值给sum
    i++;      // i的值自增
} while (i <= 10);

在这个例子中,虽然不满足于i < =10的条件,但是仍然会执行一次循环体中的代码。

三、完整代码

两个方法:

第一个:

#include <iostream>
using namespace std;

int main()
{
    int n , a , b ;
    while(cin>>n)
    {
        for(int i=0 ; i<n ; i++)
        {
            cin>>a>>b;
            cout<< a+b << endl;
        }
    }
    
}

第二个:

#include<iostream>
using namespace std;
int main() {
    int n, a, b;
  // 使用while循环接收持续输入的n
    while (cin >> n) {
      // 使用while循环控制代码执行n次,当n为0的时候,结束循环
        while (n--) {
            cin >> a >> b;
            cout << a + b << endl;
        }
    }
}

总结

这是基础课的第二节课,主要学习了三种循环以及++--的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值