在for中插入while循环。考虑这是一个脑筋急转弯

时间:2013-12-15 12:45:09

标签: c# c++ c

我最近从一些朋友那里听说他设法在for中插入了一个while循环。而我在“内部”的意思是字面意思。我在C / C ++中尝试过。像这样:

for( exp1; while(); exp2)
{
exp3;
}

for(exp1; exp2; while())
{
exp3;
}

我已经尝试过两种方式,但我似乎无法使其发挥作用。有没有人试过这个?有人能告诉我一个有效的例子吗?

4 个答案:

答案 0 :(得分:3)

这两个程序在C中无效。

C中的

for循环子句必须是表达式(或第一个子句的声明)。 while语句。

答案 1 :(得分:3)

for( int a = 17; 1 != [&](){while(!(a%2)){a/=2;};return a;}(); a=a*3+1){
  std::cout <<a<<"\n";
}

while内的for

答案 2 :(得分:1)

for语句的一般形式(不包括基于范围的for)实际上由三个表达式组成:init表达式,条件表达式和另一个表达式。语句while不是表达式语句,因此它不能在表达式中使用。

答案 3 :(得分:0)

我同意其他人的说法,你不能将这样的while语句插入到C中的for循环中。从我学到的for循环的语法是这样的:

for(initializer; condition; increment) 
...

从教科书中,它说它只能接受条款和表达。

while语句创建一个结构化循环,只要while中指定的条件在每次迭代开始时为真,就会执行该循环。所以,我认为while条件适用于while语句本身,而不适用于for循环。欢呼声。