我的问题基本上在标题中。基本上,我了解到在 Java 中,&& 运算符就像短路一样,因此如果第一个条件的计算结果为 false,它就不会查看语句的其余部分。我假设在 C++ 中就是这种情况,但我正在编写一些代码,首先检查索引是否超过列表大小,然后将列表中的索引与另一个数字进行比较。像这样的东西:
//let's say list.size()=4;
for(int i=0; i<10; i++)
{
if(i < list.size() && list.get(i) == 5)
//do something
...
}
这不是确切的代码,但它说明了这一点。我假设由于 i > 列表大小,下半部分不会得到评估。但它似乎仍然如此,我相信这是导致段错误的原因。我知道我可以使用嵌套的 ifs,但这太碍眼了,而且浪费空间。有帮助吗?
最佳答案
是的,在 C 和 C++ 中,&& 和 ||运营商短路。
关于java - C++ 中的 && 与 Java 中的 && 行为相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3865814/