C++ C++;有人能解释一下这些for循环在说什么吗?
这段代码是我从网上复制的boggle游戏的基本大纲。 资料来源: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
我哪里出错了?代码>:代码>块只是一个奇怪的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
语句