C/C++语言 6 —— 流程控制

        if ,switch ,for,while ,do while ,break ,continue  在流程控制上的使用。

条件分支结构:

  •  if 语句

  满足某条件执行这部分逻辑语句,满足另一个条件执行另一个部分的语句,这就是条件分支结构。

        语法:

if(表达式1){
    //逻辑1
}else if(表达式2){
    //逻辑2
}esle if(表达式3){
    //逻辑3
}
... //可以有多个else if
else{
    //最后剩下的语句逻辑
}

        可以没有else if ,可以没有else ,也可以什么都没有,就一个if语句。如果if 的逻辑语句只有一条语句,可以省略 { }  。

        例:写一个判断奇偶性的程序,要求输入一个整数,如果是奇数,就输出 odd  ,如果是偶数就输出 even 。

#include <iostream>

using namespace std;

int main() {

    int n;

    scanf("%d", &n);

    if (n % 2 ) {   // n%2 的值 ,只有2个值 ,0和1,零即fasle,非零 即 ture 
        printf("odd \n");
    } else {
       printf("even \n");
    }
    
    return 0;
}

        另外,if 语句可以嵌套,在if嵌套中,else 总和离他最近的if进行逻辑配对。

代码如下:

#include <iostream>

using namespace std;

int main() {

    int n;

    scanf("%d", &n);

    if (n > 2)
        if (n % 2)
            printf("good");
        else
            printf("bad");

    return 0;
}

        else 和 离他最近的 if (n%2) 组队匹配 ,所以你输入一个小于2的数,不会输出bad,但是你输入一个大于2的偶数会输出bad。如果你想和外面的匹配,你可以加入 花括号 {} 去重新划定逻辑区域。

  • switch 语句

当并行的逻辑判断太多时,比如:

if ( n % 5 == 0 ){
    ...
} else if( n % 5 == 1 ){
    ...
}else if( n % 5 == 2 ){
    ...
}else if( n % 5 == 3 ){
    ...
}else if( n % 5 == 4 ){
    ...
}

          这里的 太多 else if 不方便 , n%5 多次计算, 造成了计算上的浪费。为了解决这种不便和浪费,我们可以使用switch 语句。

switch ( 表达式 ){
    case : 表达式常量值1 :
        // 逻辑语句组
        break;
    case : 表达式常量值2 :
        // 逻辑语句组
        break;
    ... 

    case : 表达式常量值n :
        // 逻辑语句组
        break;
    default:
        // 剩下的进 默认的逻辑
}

        switch 语句需要注意一点,一定不要忘了,加break ,switch 不遇break 不回头,如果没遇到break的话,它就会一直执行到底,直到结束。所以如下代码 在周末的处理上就是利用这个特性。

        参考代码:

#include <iostream>

using namespace std;

int main() {

    int n;

    scanf("%d", &n);

    switch (n % 7) {
        case 6:
        case 0:
            cout << " 这两天是周末,回家 " << endl; 
            break;
        case 1:
            cout << " 今天周一,今天拿到需求 " << endl;
            break;
        case 2:
            cout << " 今天周二,今天代码自测 " << endl;
            break;
        case 3:
            cout << " 今天周三,今天项目评审 " << endl;
            break;
        case 4:
            cout << " 今天周四,今天上线项目 " << endl;
            break;
        default:
            cout << " 今天周五,买票回家 " << endl;
            break;

    }
}

        通过这种方式,我们解决了 n%7 重复计算的问题,也解决了太多else if 给代码造成的编写上的臃肿问题。 

  • for循环

        当需要将某段代码或者语句,重复执行多次的情况,我们就可以使用循环语句。先看一下for循环,重点关注 for循环语法 和 其各表达式逻辑编排:

for(初始表达式;条件表达式;变化表达式){
    //重复执行若干次的逻辑
}

for 的初始表达式,作为起点,只允许一次,一般就是一些初始化的工作。条件表达式就是看是否满足条件,变化表达式就是当执行完一次循环体逻辑后,必须进行一次量变的逻辑,变化后再去和条件表达式进行匹配,看是否满足条件表达式,如果满足,再执行一次逻辑;不满足结束循环(和递归的机制差不多)。

  • while 和 do while 循环

  • break 和 continue语句

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值