C++中能否扩展do-while循环的while条件表达式?
C++ do-while循环条件能否扩展代码块的问题解答
不行,C++语法不允许在do-while循环的while()括号内直接编写代码块(也就是用{}包裹的代码段)。
核心原因
while关键字后的括号里必须是一个布尔表达式——也就是能最终求值为true或false的语句,用来判断循环是否需要继续执行。括号内只能放符合表达式规则的代码,不能直接插入代码块。你示例里的写法是语法错误,编译器会直接报错。
替代实现方式
如果需要在判断循环条件前执行额外代码,有两种更合理的写法:
把扩展代码放在do块末尾
这是最直观、可读性最高的方式,把要执行的代码放在do循环体的最后,刚好在进入while判断前运行:do { // 你的核心业务代码 // 这里放需要执行的扩展代码 int temp = get_some_value(); bool loop_condition = temp > 0; } while (loop_condition);使用逗号表达式(不推荐初学者)
逗号表达式可以让你在一个表达式里执行多个语句,最终以最后一个表达式的结果作为整个条件的值。但这种写法可读性较差,不建议频繁使用:do { // 你的核心业务代码 } while ( (cout << "正在检查循环条件" << endl, some_variable < 10) );上面代码中,逗号前的
cout语句会先执行,然后以some_variable < 10的结果作为循环判断条件。
内容的提问来源于stack exchange,提问作者Ninjaprogrammer
相关产品推荐
相关产品推荐

