各种语言里面都有这些结构,那我想问一个简单的问题,这些结构为什么可以执行下去?
条件表达式的计算结果必须是一个整数(int 类型)。 任何非零值都被视为 "真"(true)。 值为 0 被视为 "假"(false)。
先总结
条件表达式(Conditional Expression) 是 C 语言中用于 判断真假 的表达式,它的结果是一个整数(int
类型),可以用于 if
、for
、while
等控制语句。
他就是一个表达式,这个返回值是0,或者不是0.
C 语言中的 算术表达式 也可以作为条件表达式,任何 非 0 的计算结果都会被视为 真。这很合理,结果就是一个数而已。
这些就是表达式
逻辑表达式
可以通过逻辑符号扩展多个表达式
再来总结一下
看IF的:
条件表示式可以写很多的东西
核心就是,是不是是非0的。
条件成立吗?
看看for?
条件表达式的值非0,则循环继续执行。 条件表达式为0时,循环终止。
init 会首先被执行,且只会执行一次。这一步允许声明并初始化任何循环控制变量。也可以不在这里写任何语句,只要有一个分号出现即可。 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。
也就是说,中间的条件表达式非0的时候就执行一次里面的表达式
接着迭代一次。
我们来看个demo?
一步步的执行咋样?
是不是大一的C语言题就可以嘎嘎乱杀了?
看看这个呢?
第一次的时候,0小于3,成立,打印一次,1,但是后就i--,变成了负数。
i--
导致 i
变负数,条件 i < 3
永远为真,形成死循环。
看看这while呢?
条件表达式的计算结果为 true(非 0)时,循环继续执行。 当条件表达式变为 false(0)时,循环终止。
第一次输出的是0,二次是里面变成了1,成立,输出1,二也可以输出。三的时候就不成立了,就出去了。
就这样
还有一种是,死翘翘型
首先里面是死循环,不干预肯定是运行到地老天荒的,但是可以使用break出去。
看看这个
先执行一次代码块,然后判断条件表达式。 如果条件为 true(非 0),则继续循环,否则终止。
上来就打印个0出来,
接着是变成了1,打印1,2也可以,三不行。
合理
区别就是至少一次
switch 计算表达式的值,并跳转到匹配的 case 语句执行。 如果 case 语句没有 break,会继续执行下一个 case。
合理