卡码网C++语言基础课 | 2. A+B问题II

38 阅读2分钟

题目描述

image.png

省略写法

(睡一觉起来就忘了std的知识点了......别说简写,连写都没写)

因为cin cout都属于std命名空间里的对象,每次使用时都要加上std::,这较为繁琐

为了简化操作,可在代码最开头加上

using namespace std;

for循环

for语句的语法格式是:

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

编程中初始化值一般都是从0开始,代入本题条件,如果想让for语句执行n次,c++代码如下:

for(i=0;i<n;i++){
    std::cin
}

本题用for循环的完整题解为:

#include<iostream>
using namespace std;
int main(){
    int n;
    while(cin >> n){
        int a,b;
        for(int i=0; i<n; i++){
            cin >> a >> b;
            cout<< a+b << endl;
        }
    }
}

++和--

i++后缀递增操作符:先返回变量当前值,然后加1

++i前缀递增操作符:先加1,然后返回增加后的值

i--后缀递减操作符

--i前缀递减操作符

while循环

回顾一下while基本语法:

while(条件){

}

然后按照刚才成功写出的for循环的逻辑补完while循环:

#include<iostream>
using namespace std;
int main(){
    int n;
    while(cin >> n){
        int a,b;
        while(cin >> a >> b;){
            cout<< a+b << endl;
        }
    }
}

❌写错了,重新理一下思路

for循环的逻辑是:定义一个变量i,循环一次i+1,当i=n时退出循环

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

进一步的我们还可以节约一个变量i,从i和n比较变成n和0比较

#include<iostream>
using namespace std;
int main(){
    int n;
    while(cin >> n){
        int a,b;
        while(n>0){
            n--;
            cin >> a >> b;
            cout<< a+b << endl;
        }
    }
}

其实也可以直接把条件写成n--,因为0可以转换为false,当值为while(0)时也就自动退出循环了

#include<iostream>
using namespace std;
int main(){
    int n,a,b;
    while(cin >> n){
        while(n--){
            cin >> a >> b;
            cout<< a+b << endl;
        }
    }
}

do while

除了for和while循环,还有一种do while循环:

do{
    //代码块
}while(条件判断)

do while循环会先执行循环体代码块,然后再检查条件判断,如果条件判断为真,则继续下一次;条件判断为假就退出循环。

无论条件的值如何,我们都至少执行一次循环。

数据类型转换

在某些情况下可能会发生数据类型的转换,比如在while(条件判断)循环中,条件判断通常是一个布尔值(T真F假),但假如我们给出的是整型值,编译器会自动转换为布尔值(非0为T,0为F)