C++? for 循环中带有 continue 运算符的运算符
C++ ? operator with continue operator in for loop
我有一个看起来像这样的方法:
bool Perfect(int num) {
int sum = 0;
for (int i = 1; i < num; i++)
{
num%i == 0 ? sum += i : continue;
}
return sum == num ? true : false;
}
我想在这里合并?运算符与继续运算符...
所以逻辑上如果这里的语句在这一行中是错误的:
num%i == 0 ? sum += i : continue;
我将跳过迭代还是什么都不做?
如果我这样做,编译器会报告如下错误:
expected an expression
如果是这样的话:
num%i == 0 ? sum += i
它说:
Expected a ':'
有什么方法可以使用continue with吗?运算符或只是简单地以某种方式避免错误情况 ???
C++ 和 C 都有 statements 和 expressions(注意赋值或函数调用是表达式,表达式是陈述)。它们是不同的句法(和语义)事物。
您可以在 for
循环中编码(但这是一种奇怪的风格,因为语句简化为 ?:
条件表达式):
(num%i == 0) ? (sum += i) : 0;
(当 num%i
非零时,计算结果为 0
,没有明显的副作用;顺便说一句,最后一次出现的 0
可能是 1234
或任何常数积分表达式)
一些编程语言(特别是 Scheme,阅读 SICP)只有表达式(没有语句)。
三元?:
operator应用于表达式并给出一个表达式(因此不能用于语句)。
条件语句使用 if
关键字。在您的情况下,它更具可读性(因为您使用 sum += i
只是为了它的副作用)并且 if
语句在这里更容易理解。
bool Perfect(int num) {
int sum = 0;
for (int i = 1; i < num; i++)
{
if(num % i == 0)
sum += i;
}
return sum == num;
}
使用 if
语句。不需要 continue
因为在 sum += i
.
之后没有其他语句
您不能以这种方式使用三元运算符。您通常会使用它根据表达式为真或假为变量赋值。例如
int j, i,
j = (i == 2) ? 5: 10;
如果 i 等于 2,则 j 的值为 5,否则如果 i 不等于 2,则 j 的值为 10。
我有一个看起来像这样的方法:
bool Perfect(int num) {
int sum = 0;
for (int i = 1; i < num; i++)
{
num%i == 0 ? sum += i : continue;
}
return sum == num ? true : false;
}
我想在这里合并?运算符与继续运算符...
所以逻辑上如果这里的语句在这一行中是错误的:
num%i == 0 ? sum += i : continue;
我将跳过迭代还是什么都不做?
如果我这样做,编译器会报告如下错误:
expected an expression
如果是这样的话:
num%i == 0 ? sum += i
它说:
Expected a ':'
有什么方法可以使用continue with吗?运算符或只是简单地以某种方式避免错误情况 ???
C++ 和 C 都有 statements 和 expressions(注意赋值或函数调用是表达式,表达式是陈述)。它们是不同的句法(和语义)事物。
您可以在 for
循环中编码(但这是一种奇怪的风格,因为语句简化为 ?:
条件表达式):
(num%i == 0) ? (sum += i) : 0;
(当 num%i
非零时,计算结果为 0
,没有明显的副作用;顺便说一句,最后一次出现的 0
可能是 1234
或任何常数积分表达式)
一些编程语言(特别是 Scheme,阅读 SICP)只有表达式(没有语句)。
三元?:
operator应用于表达式并给出一个表达式(因此不能用于语句)。
条件语句使用 if
关键字。在您的情况下,它更具可读性(因为您使用 sum += i
只是为了它的副作用)并且 if
语句在这里更容易理解。
bool Perfect(int num) {
int sum = 0;
for (int i = 1; i < num; i++)
{
if(num % i == 0)
sum += i;
}
return sum == num;
}
使用 if
语句。不需要 continue
因为在 sum += i
.
您不能以这种方式使用三元运算符。您通常会使用它根据表达式为真或假为变量赋值。例如
int j, i,
j = (i == 2) ? 5: 10;
如果 i 等于 2,则 j 的值为 5,否则如果 i 不等于 2,则 j 的值为 10。