de if-Block是什么意思

时间:2019-09-16 19:17:51

标签: c++ if-statement addition

if块中的加法是什么意思? if-Question有什么作用?

我已经尝试使用整数代码,但是它向我展示了if块每次都是正确的

¯\_(ツ)_/¯

3 个答案:

答案 0 :(得分:4)

  

if块中的加法是什么意思?

它的含义与其他任何地方完全相同,并且取决于f(a,751)等具有什么类型的表达式。因此,您的if语句在逻辑上等于:

auto tmp = f(a,751) + f(b, -751) -f(c, a);
if( tmp ) ... 

通过这种方式,您可能更容易理解+if内部没有特殊含义

  

if-Question有什么比较?

C ++具有特殊的规则,如何将某些类型转换为bool期望的类型if。例如,对于int,任何非零值都将转换为true,否则将转换为false。不知道返回什么f(),就不可能说更多。

您应该了解a < b并没有什么特别之处,它只是一个返回bool的表达式。 if仅评估括号内的内容,然后尝试将其转换为bool。如果可以使用,则无法编译。

答案 1 :(得分:2)

在所示的代码中,对整个表达式f(a,751) + f(b, -751) - f(c, a)进行求值,如果它将返回可转换为bool的值(例如,整数),则将值转换为{{1} }。对于整数,则表示该值是否为非0。

缺少true函数的定义,我不再赘述。

答案 2 :(得分:2)

加法就是加法。假设f()返回一个整数,则if语句只是在评估一个整数条件。在这种情况下,任何非零数字都将返回true。