C++基础 第六章 语句

语句基础

常见类别:表达式语句、空语句、复合语句

顺序语句与非顺序语句(引入跳转)

最基本的非顺序语句:goto

if(x) goto label;

label: ...  不能实现跨函数跳转;向前不能超过对象的初始化

容易造成逻辑混乱,少用

分支语句—if

else与最近的if相匹配

可以使用大括号来改变匹配逻辑

缩进和换行不起作用,因此通常引用大括号

if constexpr:区别 括号里是常量表达式。好处是可以在编译器确定走哪个分支。括号里面还可以加初始化语句if(int y = x*3;y>100)。y只在if else里面用

switch 语句

switch(整形或者可以转换成整型的) 加语句(多用复合语句)

可以使用case或者default标号。定义变量需要使用大括号

       switch(x)

{

       case 常量表达式(编译器可以执行的):

                break; 可以跳出当前switch执行

        default:缺省分支

}

[[fallthrough]];告诉编译器就需要fallthrough操作,可以不报错

与if相比的优劣

        分支描述能力较弱

        但是能在运行期节省时间

循环语句—while

while(条件)语句。直到条件不再满足;while条件部分不含额外初始化内容

循环语句—do-while

先执行do的内容

循环语句—for

正式语法:for(初始化语句;迭代化语句)语句

非正式语法:for(申明或表达式;声明或表达式;表达式)语句

处理逻辑:初始化语句首先执行-条件部分会被执行,结果为false就终止-否则执行循环体-迭代表达式会被求值,之后转向2

可以声明多个变量,只要他们有相同声明说明符序列

基于范围的for循环

本质是一个语法糖

for(int v : 数组)。调用数组的每个元素。实际运行时会被转换成正常的for循环的方式

循环语句——break/continue

含义

- break:导致外围的for、范围for、while或do-whiel循环或switch语句中止

- continue:用于跳过整个for、while或do-while循环体的剩余部分

注意这两者均不能用于多重嵌套循环,多重嵌套循环的跳转可考虑goto语句

int main()
{
    int i = 2;
    switch (i) {
        case 1: std::cout << "1";   //<---- 可能会有警告:直落
        case 2: std::cout << "2";   //从此 case 标号开始执行(+警告)
        case 3: std::cout << "3";   //<---- 可能会有警告:直落
        case 4:                     //<---- 可能会有警告:直落
        case 5: std::cout << "45";
                break;              //终止后续语句的执行
        case 6: std::cout << "6";
    }
 
    std::cout << '\n';
 
    for (int j = 0; j < 2; j++) {
        for (int k = 0; k < 5; k++) {         // break 只会影响此循环
            if (k == 2) break;
            std::cout << j << k << " ";
        }
    }
}

输出:

2345

00 01 10 11

你可能感兴趣的:(c++,开发语言)