逻辑或(||)的短路求值
i = a++ || ++b || d++;
printf("a = %d\n b = %d\n c = %d\n d = %d\n", a, b, c, d);
-
逻辑或(
||)的规则:
逻辑或运算从左到右依次判断表达式,只要遇到一个表达式结果为1(真),就会 “短路”,直接停止后续表达式的计算(因为逻辑或要求只要有一个为真,整体结果就为真,后续无需再判断 )。 -
代码执行过程:
- 先计算
a++:a++是后置自增,先使用a的当前值(1)参与运算,然后a自增为2。
由于a++结果为1(真),根据逻辑或的短路特性,后面的++b和d++不会执行! - 因此,
i最终被赋值为1(逻辑或运算整体结果为真) ,且b、d的值保持初始状态(b=2,d=4,因为++b和d++没执行 )。
- 先计算
-
按格式输出变量值:
a因a++自增为2;b未执行++b,保持2;c从未操作,保持3;d未执行d++,保持4。
7. for循环
7.1 语法形式
for(表达式1; 表达式2; 表达式3)
//表达式1 用于循环变量的初始化
//表达式2 用于循环结束条件的判断
//表达式3 用于循环变量的调整
![[image 19.png|310x401]]
int main()
{
int i = 0;//创建变量的初始化
for (i = 1; i <= 10; i++) //循环变量的初始化,两码事
{
printf("%d ", i);
}
return 0;
}
练习:1~100之间3的倍数之和
int main()
{
int sum = 0;
for (i = 0; i % 3 = 0 && i <= 100;sum+=3)
{
printf("%d",sum);
}
}

京公网安备 11010502036488号