c++ - 错误 : expected primary-expression before ‘=’ token when using for loops

标签 c++

<分区>

Possible Duplicate:
lvalue required as left operand of assignment
lvalue required as left operand of assignment (C program)

我的代码出现了这个错误,我不确定为什么。请帮忙! 错误是:

错误:在“=”标记之前需要主表达式

这是我遇到问题的代码部分。 a 和 b 之前已声明为整数。

   int i = 0;
   for( i == a; i < = b; i = i + 1)  // ERROR IS IN THIS LINE
   {  int j = 1;
      int N = static_cast<int>(sqrt(i));

      for( j = 1; j < = N; j = j + 1)   // ERROR IS IN THIS LINE
      {  int P = i%j;
         if( P == 0 && j!= 1 && j!= i)
         {  j = N + 1;
         }
         if( P != 0 && j == N)
         {  cout << i << "is prime" << endl;
         }                                         
      }
   }                                                     

最佳答案

我想你是故意的

if( P != 0 && j == sqrt(i))

=赋值运算符,== 测试等价并返回 bool 值。

赋值运算符有较小的precedence比逻辑与 (&&),所以它被读作

(P != 0 && j) = sqrt(i)

这就是报告左值错误的原因。

关于c++ - 错误 : expected primary-expression before ‘=’ token when using for loops,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12963575/

相关文章:

c++ - C++ 类中的 Objective C 成员

c++ - 我的 fstream 总是失败

C++ 为多线程适配一个库

c++ - 结构大小与 typedef 版本不同?

c++ - C 中的 OpenCV 拼接程序,如何进行像素变换?

c++ - C/C++ 中定义的(XXXX) 宏?

c++ - GTK 滚动窗口 - 将滚动条保持在底部

c++ - 我如何与 C++ 中的其他应用程序交互?

c++ - “stoi”未在此范围内声明

C++11 中非静态数据成员的类初始化