【问题标题】:Can an if condition be a for loop?if 条件可以是 for 循环吗?
【发布时间】:2021-01-17 02:58:13
【问题描述】:

只是想知道 if 语句的条件是否可以是 C++14 中的 for 循环。例如:

using namespace std;

if (for (int i = 0; i < 10; i++)){
    cout << "The number now is " << i << endl;
}

【问题讨论】:

  • 你试过编译代码看看它是否有效吗?另外,您希望这种语法的效果是什么?根据您想要发生的情况,通常有多种方法可以实现该效果。
  • @cigien 我做了,它给出了两个错误(我正在使用 clion),一个用于关于“预期表达式”的 for 循环,另一个用于最后一行代码中的 i 变量,关于“使用未声明的标识符‘i’”。
  • 那么,这是否回答了您的问题?也就是说,这是不可能的。
  • 你希望用这种语法完成什么? (循环如何成为条件?)您的预期行为是什么? (循环何时为“真”?)即使您尝试的语法无法编译,您的目标也可能是可能的。
  • @Sunny267 我不是要求申请,而是要求意义。这样的结构意味着什么?将元素放在一起形成废话,然后询问它是否合法是没有生产力的。 (但是,如果您对 if ( for (...) ) 可能被解释为明智的方式有所了解,那么您的问题可能会很有成效。)

标签: c++ for-loop if-statement c++14


【解决方案1】:

条件必须是可以评估为布尔值的东西(例如布尔文字,返回布尔值的函数调用,你可以命名它),或者可以转换为布尔值的东西,例如通过bool() 类型转换运算符。 for 循环不会被评估为任何东西。它只是一段代码,在特定条件下以特定方式运行。

所以不,您不能将for 循环视为布尔表达式。这不是一个表达式。

如果您愿意,您可以创建一个运行 for 循环然后返回布尔值的函数。然后,您可以将该函数调用的输出用作条件(例如 if (my_function()) {...})。

【讨论】:

    猜你喜欢
    • 2021-06-13
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2021-12-30
    • 1970-01-01
    相关资源
    最近更新 更多