c++ - 试图避免 for 循环内的 if-else 语句,但代码似乎有一些错误

标签 c++ for-loop conditional-operator

这个片段工作得很好。

for (int i = 0; i < 1; i++) // for some other purpose
{
  // some other code

  double** angle = new double* [10];   // for a 2D matrix
  for (int j = 0; j < 10; j++)
  {
     angle[j] = new double [3];

     if (j == 0) 
            angle[j][0] = 2;          // focused on the first column for now
     else 
            angle[j][0] = angle[j-1][0]+3;

     std::cout << angle[j][0] << std::endl;
  }

  for (int i = 0; i < 10; i++)
     delete[] angle[i];
     delete[] angle; 
}

我试图不在循环内使用条件语句。如果我将其替换为以下行,则代码将停止工作。请帮助我理解它。

angle[j][0] = (j == 0) * 2 + (j != 0) * (angle[j-1][0] + 3);

使用g++ -std=c++11 -o out main.cpp; ./out在 Ubuntu 16.04 LTS 上

最佳答案

您正在尝试使用三元运算符,但语法错误。

这样做:

角度[j][0] = (j == 0) ? 2 : (角度[j-1][0] + 3);

关于c++ - 试图避免 for 循环内的 if-else 语句,但代码似乎有一些错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59386641/

相关文章:

javascript - 如何在 Reactjs 中将类名和变量放在三元中?

c++ - std::reverse on boost::ptr_vector 切片对象?

c++ - 检查该值是否已存在于 vector 中

Java循环效率

javascript - 嵌套 For 循环按什么顺序运行?

Java 多个三元运算符

c++ - 从中间删除元素的最佳数据结构是什么?

c++ - 在 Mac OS X 中创建虚拟 USB 设备

javascript - 无法使用 JS 循环获取选定选项

ios - 如何将空值存储到数据库表