视觉我一直得到这个"error C2059" C++

visual i keep get this "error C2059" C++

本文关键字:error C2059 C++ 一直 视觉      更新时间:2023-10-16

我收到此错误

error C2059: syntax error : 'if'

这是我的代码

// N.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
int main ()
{
    int x,y,n,i,m;
    std::cout<<"please enter a number";
    i=0;
    std::cin>>n;
    for (x=1;x=n;x++)
        for (y=1;y=n;y++)
        if (x=y) m=x;
        else;
    while (x!=y) ;
    do
    {
        if (x>y) x=x-y;
        else y=y-x;
        m=x;
    }
    if (m=1) i=i+1;
    std::cout<<i;
    return 0;
}

问题出在哪里?

我正在使用微软视觉工作室 2008

问题是在do { ... }之后编译器期待一个条件:

do
{
    if (x>y) x=x-y;
    else y=y-x;
    m=x;
} while (condition);

此外,您的代码似乎根本不正确。例如,您的if (x=y)条件可能是这样的:if (x==y),以及其他...

您的for语句中有错误。
使用==进行比较,而不是=哪个是分配。
此外,请使用<<=进行比较。 可以循环跳过==条件。

帮助防止将来出现这些问题的建议:将"{"和"}"与forifelsewhile一起使用。

例如:

for (x=1;x=n;x++)
{  // Insert this line.
    for (y=1;y=n;y++)
    {  // Insert this line.
        if (x=y)
        {
           m=x;
        }
        else
        {
           ;
        }
    } // End of for y
}  // End of for x

大括号和缩进有助于在代码审查期间发现错误。 大多数编码样式都需要大括号,即使对于单个语句也是如此。

此外,使用空格使代码更具可读性。 它们不会影响构建时间或代码生成,但在读取代码时确实有帮助:
for (x = 1; x <= n; x++)

相关文章: