C++ C++;有人能解释一下这些for循环在说什么吗?

C++ C++;有人能解释一下这些for循环在说什么吗?,c++,for-loop,conditional-operator,C++,For Loop,Conditional Operator,这段代码是我从网上复制的boggle游戏的基本大纲。 资料来源: 我哪里出错了?代码>:块只是一个奇怪的if语句。这是一个内联的如果,如果你愿意 这是格式 argument ? result evaluated to if true : result evaluated to if false 这里有一个例子 1<2 ? "Hurray" : "boo" 1The?:块只是一个奇怪的if语句。这是一个内联的如果,如果你愿意 这是格式 argument ? result evaluate

这段代码是我从网上复制的boggle游戏的基本大纲。 资料来源:


我哪里出错了?

代码>:块只是一个奇怪的if语句。这是一个内联的如果,如果你愿意

这是格式

argument ? result evaluated to if true : result evaluated to if false
这里有一个例子

1<2 ? "Hurray" : "boo"

1The
?:块只是一个奇怪的if语句。这是一个内联的如果,如果你愿意

这是格式

argument ? result evaluated to if true : result evaluated to if false
这里有一个例子

1<2 ? "Hurray" : "boo"
1
我知道它的简单部分,比如“?”表示返回“:”表示下一行

不,根本不是这个意思
?:
是一个具有三个操作数表达式的运算符,其中一个表达式出现在
之间

placeY > 0 ? placeY-1 : placeY
是一个表示“如果
placeY>0
,则计算
placeY-1
;否则计算
placeY

该代码的思想是,出于某种原因,我们希望迭代电路板上靠近(placeX,placeY)的所有位置。这些位置形成一个矩形,
?:
运算符用于计算该矩形的左、右、上和下极限。例如,上面引用的表达式用于顶部坐标。它通常是
placeY-1
,除非
placeY
已经是0,否则它上面的板上没有行,在这种情况下
placeY
本身就是最上面的一行

我知道它的简单部分,比如“?”表示返回“:”表示下一行

不,根本不是这个意思
?:
是一个具有三个操作数表达式的运算符,其中一个表达式出现在
之间

placeY > 0 ? placeY-1 : placeY
是一个表示“如果
placeY>0
,则计算
placeY-1
;否则计算
placeY



该代码的思想是,出于某种原因,我们希望迭代电路板上靠近(placeX,placeY)的所有位置。这些位置形成一个矩形,
?:
运算符用于计算该矩形的左、右、上和下极限。例如,上面引用的表达式用于顶部坐标。它通常是
placeY-1
,除了如果
placeY
已经是0,它上面的板上就没有行了,在这种情况下
placeY
本身就是最上面的一行。

我不确定您是否完全理解
操作符…基本上是什么
placeY>0?placeY-1:placeY)
的意思是:“placeY大于0吗?如果是,那么这个表达式的结果是
playeY-1
,否则它是
placeY
”@pretic:“operator”,而不是“operators”<代码>?:
是一个具有三个操作数表达式的单运算符。@HenningMakholm-哇,是的,你是对的。我不确定你是否完全理解
运算符…基本上是什么
placeY>0?placeY-1:placeY)
的意思是:“placeY大于0吗?如果是,那么这个表达式的结果是
playeY-1
,否则它是
placeY
”@pretic:“operator”,而不是“operators”<代码>?:
是一个带有三个操作数表达式的单运算符。@HenningMakholm-哇,是的,你说得对。
?:块根本不是一个语句。考虑到OP的混淆之处,这可能不是最好的描述
?:
不像
return
语句那样,在“停止执行当前函数并继续执行其停止的调用者”的意义上“返回”。
?:
所做的是,像所有其他表达式一样,对这个或那个进行求值,而不是返回什么。那么我可以在for循环中放入if语句吗?@KurtE Yes。您的代码在for循环中已经有if语句。在for循环的
()
中不能放入if。例如,
for(不在这里;也不在这里;不在这里){但在这里的任何地方}
The
?:块根本不是一个语句。考虑到OP的混淆之处,这可能不是最好的描述
?:
不像
return
语句那样,在“停止执行当前函数并继续执行其停止的调用者”的意义上“返回”。
?:
所做的是,像所有其他表达式一样,对这个或那个进行求值,而不是返回什么。那么我可以在for循环中放入if语句吗?@KurtE Yes。您的代码在for循环中已经有if语句。在for循环的
()
中不能放入if。就像在,
for(不在这里;也不在这里;不在这里){但在这里的任何地方}
那么我可以把if语句放在for循环中吗?@Kurt:你可以把if语句放在for循环的主体中,但是放在(;;;)的
括号之间
header-only表达式是允许的。重要的一点是,程序的执行流程没有变化。整个
placeY>0?placeY-1:placeY
将计算为单个值,然后可以将该值分配给
y
。例如,由于
if
语句看起来像
if(expression){…}
,因此可以合法地将该行放入
if
条件中。该表达式与if语句完全不同,尽管我们在描述
?:
运算符的行为时使用了“if”一词。那么我可以将if语句放在for循环中吗?@Kurt:您可以将if语句放在for循环体中,但放在
for(;;)的括号之间
header-only表达式是允许的。重要的一点是,程序的执行流程没有变化。整个
placeY>0?placeY-1:placeY
将计算为单个值,然后可以将该值分配给
y
。例如,由于
if
语句