题目是酱紫滴(╮(╯-╰)╭某个小弟弟问的):
以下while循环中,循环体执行的次数是()
k = 1;
while(–k)
k = 10;
A、10次 B、无限次 C、1次 D、一次都不
怎么想觉得是D嘛,答案却是C(我坚信答案错了!)不过我选D有点想当然= =、
我很少接触数字在判断内的……所以总觉得是很好的例子。
while(–k)
//可以拆成
k = k - 1;
while(k)
/* 然而 */
while(k–)
//可以拆成
while(k)
k = k - 1
换句话说,–k先运算,再判断(使用),而k–使用完了再参与运算,- -貌似以前有纠结过这个,完全不记得……依旧搞不清@-@
另外在C中,0表示FALSE而1表示TRUE,只有在C99中才有_Bool(TRUE和FALSE),而且好像还没人用啊(T T),从数值上来说,除了0,其他的都是TRUE。
PHP中,只有以下值被认为FALSE,其他都是TRUE(摘自细说PHP):
- 布尔值FALSE
- 整型值0(零)为假,-1和其他非零值(不论正负)一样,被认为是TRUE
- 浮点型值0.0(零)
- 空白字符串和字符串”0”
- 没有成员变量的数组
- 没有单元的对象(仅适用于PHP4)
- 特殊类型NULL(包括尚未设定的变量)
想了半天,某个-1是FALSE,0是TRUE的貌似是VB啊……
至于假设说等价的两者!empty()和empty() == FALSE,大家貌似都会写前者(应该是这样吧?)的理由,果然还是因为懒吧=_=……