六、条件与循环#

1. 条件判断#

1. if语句#

条件判断即是生活中的对某个事物进行判断,比如:父子间对此次考试成绩进行约定,如果超过90分,则可以自由活动一天,如果超过80分,可以休息半天,如果低于80分,则要乖乖去 写作业。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include <iostream>

int main (){

    std::cout << "请输入此次考试的成绩:" << std::endl;

    int score ;
    std::cin >> score;

    if( score  >  90){
         std::cout << "可以休息一天" << std::endl;
    }else if(score > 80){
         std::cout << "可以休息半天" << std::endl;
    }else{
         std::cout << "乖乖去写作业" << std::endl;
    }

    return 0 ;
}

2. switch语句#

许多语言中都包含switch,比如:java 、javascript 、php 等,而python是个例外,python没有switch。,实际上switchif 语句块很相似, 它是完全的等价条件判断,但是一旦满足某个case的条件,那么其他case 就不会再进行判断。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>

int main (){
    std::cout << "请输入此次考试的成绩评级" << std::endl;
    char level ;
    std::cin >> level;
    switch (level){
        case 'A':
            std::cout << "优秀" << std::endl;
            break;
        case 'B':
            std::cout << "良好" << std::endl;
            break;
        case 'C':
            std::cout << "及格" << std::endl;
            break;
        case 'D':
            std::cout << "仍需继续努力" << std::endl;
            break;
        default:
            std::cout << "输入错误。" << std::endl;
            break;
    }
    return 0 ;
}

2. 运算符操作#

1. 关系运算符#

表示大小、相等操作的运算符,python和c++表示方法是一样的。

Operator Python C++
equal == ==
not equal != !=
greater than > >
less than < <
greater than or equal >= >=
less than or equal <= <=

2. 逻辑运算符#

有时候需要对多个条件进行一起判断,比如:前面的考试约定,不仅要考察语文的成绩还要考察数学的成绩,不仅仅是单科成绩了。

Operator Python C++
并且 and &&
或者 or ||
非(取反) not !
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>

int main (){
    int chinese_score ;
    int math_score ;

    std::cout << "请输入此次语文考试的成绩:" << std::endl;
    std::cin >> chinese_socre;

    std::cout << "请输入此次数学考试的成绩:" << std::endl;
    std::cin >> math_score;

    if( chinese_socre > 90 && math_score > 90){
         std::cout << "可以休息一天" << std::endl;
    }else if(score > 80 && math_score > 80){
         std::cout << "可以休息半天" << std::endl;
    }else{
         std::cout << "乖乖去写作业" << std::endl;
    }

    return 0 ;
}

3. 三元运算符#

一般来说,非真即假的情况下,如果表达式比较简单,通常会采用三元运算符来实现。在相比之下,c++的三元运算符比python的要简单些。比如下面的例子:如果考试成绩大于90,评为A ,否则评为B,此时针对一个条件的判断,只有两种结果,那么使用三元表达式在简洁程度上要胜过 if 语句。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>

int main (){

    int score;
    std::cout << "请输入此次语文考试的成绩:" << std::endl;

    std::cin >> score;

    /*
        //python的三元表达式:

        result = 'A' if 100 > 90  else 'B'
        print(result)
    */

    //c++
    char result = score > 90 ? 'A' : 'B';
    std::cout << "您的语文成绩评级为:" << result <<std::endl;

    return 0 ;
}

3. 循环控制#

如果需要让某件事重复执行多次,那么循环操作再合适不过了。在c++里面,循环操作有:while | do-while | for 三种实现方式 。 比如模拟路口信号灯闪烁场景

1. while#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#include <iostream>
int main (){

    int count = 0 ;
    while(count < 10){
        std::cout << "红灯还在亮着..." << std::endl;

        //单位是毫秒
        Sleep(1000);
        cout++;
    }
    return 0 ;
}

2. continue 和 break#

有时候我们需要对循环的每一次操作,都做一次过滤检查,满足条件的让循环跳过当前,进行下一次循环,或者直接退出循环。在大部分编程语言里面, continue和 break正扮演着这样的角色。比如下面打印1 到 20 的偶数。 如果打印到了16,则直接退出整个循环。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
int main (){

    int number = 1 ;
    while(number <= 20){

        if(number == 16){
            break;
        }

        //满足条件,表示当前的number是奇数。
        if(number % 2 != 0  ){
            continue;
        }

        std::cout << "当前打印的数字是: " << number << std::endl;

        number++;
    }

     std::cout << "循环已结束! "<< std::endl;
    return 0 ;
}

3. do-while#

do-while结构与while差不多,区别只在于前者是上来先执行操作后判断,后者是先判断再执行循环操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#include <iostream>
int main (){

    int count = 0 ;  
    do{
        std::cout << "红灯还在亮着..." << std::endl;
         //单位是毫秒
        Sleep(1000);
        cout++;
    }while(cout < 10);

    return 0 ;
}

4. for#

在众多循环语句中,for 循环是使用频率最高的一种。

1
2
3
4
5
6
7
8
9
#include <iostream>
int main (){    
    for(int cout  = 0 ; cout < 10 ; cout ++){
         std::cout << "红灯还在亮着..." << std::endl;
         //单位是毫秒
        Sleep(1000);
    }    
    return 0 ;
}