C++循环与分支语句、表达式与逻辑运算符

C++循环与分支语句、表达式与逻辑运算符



表达式

在C++中所有表达式都有值,而赋值表达式的值等于其左部分,可以使用连等为多个变量赋同一个值

a=b=c=1;

C风格常见for循环如下:

int i=0;
for(i=0;i<=10;i++){
        //
}

这表明for关键字括号中的第一个参数为一个表达式

然而C++中常见for循环如下:

for(int i=0;i<=10;i++){
    //
}

int i=0 不再是一个表达式,而是一个声明语句。实际上C++对for关键字的语法进行了修改,使其从分号分割的三个表达式转变为一个语句后接若干表达式

初次之外应该注意到c风格的for循环定义的i是外部变量,而下述的for循环i被定义为for循环代码块内变量。二者作用域有所区别

副作用与顺序点

副作用指的是计算表达式时进行了某些变量修改。而顺序点指的是程序执行的一个里程点,在经过里程点之前,程序应将里程点之前的表达式全部计算完毕。

y = ( 4 + x++) + ( 6 + x++ );

其中的两个x++均不是完整表达式,因此程序直到遇到顺序点(分号)时才会保证两个x++的运算完毕。而在此之前,x++的副作用什么时候产生是不可预测的。您应该极力避免使用这种表达式。

逗号表达式

逗号是除分号之外的又一个顺序点,即逗号保证其之前的表达式计算完毕。

其常规作用是将若干语句合并成一个代码块。

逗号表达式的值使其最后一个子表达式的值。

基于范围的for循环

C++11中提供了基于范围的for循环(就像Python那样)

int a[]{1 ,2,3,4,5,6};
for(int i : a)
    cout<<i<<" ";

i将自动遍历a中的所有元素

上述写法只能取值,如果想对数组或容器中元素进行修改,需要使用引用变量

int a[]{1,2,3,4,5,6};
for(int &i:a)
    cout<<i<<" ";

此时对i的修改会反应到a中

逻辑运算符

本节仅想提一点,C++中的逻辑运算符可以直接使用英文单词的表达方式

true and false//ok
posted @ 2025-05-26 09:56  DuckingWJ  阅读(5)  评论(0)    收藏  举报