【发布时间】:2013-04-08 10:35:22
【问题描述】:
我有以下 IF 语句,但我无法弄清楚它的含义:
if (data->tokens.size())
{..
//reads each token in a for loop and assigns each token to a variable...
}
令牌中有六个值,所以 tokens.size() 应该返回 6,对吧?
我不明白为什么我们需要一个 if 条件?据我了解,如果tokens.size() 返回 1 则条件为真,如果返回 0 则条件为假。
在我的例子中,它返回 6(或任何数量的令牌,可以是任何数字,而不仅仅是 0 或 1)。那么 if 条件如何工作呢?
也就是说,我想知道 if 得到 0 和 1 以外的值时如何处理。
【问题讨论】:
-
Nitpick:
if不是“循环”。 -
谢谢大家,我得到了答案。是的,if 不是循环而是条件语句 :)
-
我建议您将其更改为
if ( ! data->tokens.empty() ) {...}。它不那么令人困惑(在某些情况下可能会稍微快一些,尽管这不是一个很好的理由)。 -
@BoBTFish both 你的理由在这里似乎很好。 :)
-
@DrewDormann 我不同意。使代码更清晰是一个很好的理由(证明:存在这个问题),但是在极少数情况下这会带来性能改进,而且它是如此微不足道,以至于不值得进行更改。
标签: c++ if-statement