C++逻辑控制语句

C++中的逻辑控制语句包括:

  1. 条件判断语句
    1. if - else
    2. switch - case - default
  2. 循环语句
    1. for循环
    2. while循环
    3. do-while循环
  3. 跳转语句
    1. break
    2. continue
    3. goto


1. 条件判断语句:if-else

if-else语句,如果…则...;否则…就...;

如果if括号里面的表达式的值为真,则执行大括号里面的语句,否则执行else里面的语句;如果没有else,则什么都不执行

if (boolean_expression) {
    
    // 如果if括号里面的表达式的值为真,则执行该大括号( if对应的 )里的语句体

} else {

    // 如果if括号里面的表达式的值为假,则执行该大括号( else对应的 )里的语句体

}



2. 条件判断语句:switch-case-default

将switch括号里面的值,和所有case指定的值,作比较;如果某个case指定的值,与switch括号里的值相等,则执行该case的语句体,直到遇到break语句,才会跳出switch-case-default代码块。如果switch括号里面的值,与所有case指定的值都不相等,则执行default语句体。

switch (expression)
{
    case constant_value1:
        statement(s);
        break; // 可选
    case constant_value2:
        statement(s);
        break; // 可选
    default: // 可选
        statement(s);
}

注意:如果,某个case的语句体执行完,想要跳出switch-case-default代码块,一定要在该case语句体内加上break语句!执行break语句,会跳出switch-case-default代码块!



3. 循环语句:for循环

for( init; condition; increment)
{
    statement(s); // for循环的循环体
}

for循环分为四个部分:

(1)括号里面,第一个分号之前的语句为初始化语句对循环变量进行初始化for循环里面,最开始执行的部分;

(2)括号里面,两个分号之间的语句为判断语句,只有当该语句的值为真时,才会继续执行for循环的循环体,否则,跳出for循环;

(3)括号里面,第二个分号之后的语句为更新语句,可以更新循环变量,也可以留空。

执行顺序:init ---> condition ---> statement(s) ---> increment

int a = 1;
for (int i = 0; i < 4; ++i) {
    a++;
}

std::cout << a << std::endl; // 5

注意:如果,想要提前跳出for循环代码块,一定要在该for循环的循环体内加上break语句!执行break语句,会跳出for循环代码块!



4. 循环语句:while循环

init;
while (condition)
{
    statement(s);
    increment;
}

与for循环类似,只不过,while循环的init语句放在了while循环语句块的前面,increment语句,放在了while循环的循环体内;

执行顺序:init ---> condition ---> statement(s) ---> increment

int a = 1;
int i = 0;

while (i < 4) {
    a++;
    i++;
}

std::cout << a << std::endl; // 5

注意:如果,想要提前跳出while循环代码块,一定要在该while循环的循环体内加上break语句!执行break语句,会跳出while循环代码块!



5. 循环语句:do-while循环

init;
do {
    statement(s);
    increment;
} while (condition);

与while循环类似,init语句放在了循环语句块的前面,increment语句,放在了循环体内;

与while循环不同的是,do-while循环会先执行一次循环体,然后再执行condition语句进行判断;

注意:不要忘了while的小括号后的分号!

执行顺序:init ---> statement(s) ---> increment ---> condition ---> statement(s) ---> increment

int a = 1;
int i = 0;
do {
    a++;
    i++;
} while (i < 4);

std::cout << a << std::endl; // 5

在某些情景下( 例如必须要先执行一次循环体 ),do-while循环相比while循环,会更好用一些!

注意:如果,想要提前跳出do-while循环代码块,一定要在该do-while循环的循环体内加上break语句!执行break语句,会跳出do-while循环代码块!



6. 跳转语句:break语句

break语句通常应用在,需要提前跳出当前循环代码块、或者提前跳出当前switch代码块的情况下

执行break语句后,会继续执行,当前循环代码块、或者当前switch代码块后面的语句!顺序执行!

上图中,执行break语句,会跳出该break语句所在的内层for循环,但不会跳出外层for循环,继续执行外层for循环的后面语句!

7. 跳转语句:continue语句

continue语句通常应用在,不会提前跳出循环代码块,只是会跳过本次循环的循环体内continue语句后的语句!继续下一次循环!

上图中,执行continue语句,不会跳出该continue语句所在的内层for循环,但是会跳过本次循环的循环体内continue语句后的语句!继续下一次循环!所以,会去执行 j < 3 语句!

8. 跳转语句:goto语句

goto语句,将会跳转到,被标记的语句,程序将会从被标记的语句继续顺序执行!

int a = 1
for (int i = 0; i < 3; ++i) {
    for (int j = 0; j < 3; ++j) {
        if (i + j == 3) {
            goto finish;
        }
        
        a -= 1;
    }
    a += 1;
}

finish:
std::cout << a << std::endl;
return 0;

执行到goto语句,程序会跳转到finish标记的语句,从该标记语句继续顺序执行!

注意:因为goto语句太过灵活,会打乱代码执行顺序,导致代码的可读性、可维护性变差,所以,不推荐使用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值