我是C ++和编程语言的新手,并且正在学习有关循环的知识。现在,我研究了如果循环体内存在条件和增量,In循环将起作用:
for(int i=10;i<15;i++)
但是我在某些网站上看到了一个代码,就像这样:
for(;NULL;)
{
cout<<"hello";
}
现在,有人可以解释一下它的输出及其工作原理吗?
答案 0 :(得分:4)
在C ++中,控制for
循环的所有3个表达式都是可选的。这使语言功能强大。在您的情况下,您缺少初始化(通常)初始化循环计数器的表达式以及通常用于递增循环计数器的表达式。您拥有的是停止条件。
如果Null
具有上下文转换到bool
类型的内容,则程序将编译。否则就不会。让我们假设它可以做到:
如果转换后的bool
值为false
,则循环体将永远不会运行。
如果转换后的bool
值为true
,则循环主体将运行。 (请注意,转换可能可能会更改转换后的对象,因此最终会产生false
,因此循环最终会终止!)
答案 1 :(得分:1)
for
循环结构可以概括为以下内容。
for(initializationStatement; testExpression; updateStatement) {
// codes
}
在您给出的initializationStatement
和updateStatement
的代码示例中,它们被忽略了,即它们什么也不做。
for
循环一直执行到testExpression
为true
为止。在C / C ++中,任何求值为0
的表达式都是false,而任何求值其他值的表达式都是true。 Null
在这种情况下大概可以转换为bool
并产生false。由于testExpression
是false
,因此循环永远不会执行。
答案 2 :(得分:0)
基于条件,将执行循环,现在条件为NULL,而Null表示不存在条件,因此如果条件本身为Null,它将不接受任何内容,因此它只是从循环中跳过而不会打印任何东西。
答案 3 :(得分:0)
循环应自行运行的条件是Null
。因此,for循环将不会执行。您应该至少有一个有效条件,以便for循环执行一次并打个招呼