编写 if 语句时出错"'=' : left operand must be l-value"

Error "'=' : left operand must be l-value" when writing an if-statement

本文关键字:operand left must be l-value 语句 编写 if 出错      更新时间:2023-10-16

我必须编写这段代码来运行骰子游戏,这是我的第一个游戏程序,我遇到了一些以前从未见过的错误,所以我已经尽力修复了它们。所以我只剩下这些错误:

'=' : left operand must be l-value

最后三个if语句。我知道这可能只是我问题的开始,但我对这一切都很陌生,所以非常感谢任何建议。

#include <iostream>
#include <ctime>     //Include Header file for time functions
#include <cstdlib>   //Include Header file for random number generators
#include "graph1.h"
using namespace std;
int main()
{
//Variable Declaration
int rv1 = 0;    //Random number for the 1st dice
int rv2 = 0;    //Random number for the 2nd dice
int seed=0;
int wager=0;
//Display graphics
displayGraphics();
cout<<  "Wager";
cin>>wager;

//Initialize random number generator
srand(time(0));
//Generate two random numbers between 1 and 6 inclusive
rv1 = (rand()%6)+1; /* Function rand() generate a random number, 
(rand()%6+1) generate a random number between 1&6 */
rv2 = (rand()%6)+1;
//rv1
if(rv1=1)
{cout<<displayBMP("1.bmp",200,150);}
else 
{   if (rv1=2)
cout<<displayBMP("2.bmp",200,150);}
if (rv1=3)
{cout<<displayBMP("3.bmp",200,150);}

if (rv1=4)
{cout<<displayBMP("4.bmp",200,150);}
if (rv1=5)
{cout<<displayBMP("5.bmp",200,150);}
if (rv1=6)
{cout<<displayBMP("6.bmp",200,150);}
//rv2
if(rv2=1)
{cout<<displayBMP("1.bmp",200,250);}
if (rv2=2)
{cout<<displayBMP("2.bmp",200,250);}
if (rv2=3)
{cout<<displayBMP("3.bmp",200,250);}
if (rv2=4)
{cout<<displayBMP("4.bmp",200,250);}
if (rv2=5)
{cout<<displayBMP("5.bmp",200,250);}
if (rv2=6)
{cout<<displayBMP("6.bmp",200,250);}

if (wager<5)
{
    cout<<displayBMP("smiley.bmp",250,100);
    gout<<setPos(150,280)<<"Your wager of"<<wager<<"is less than required $5/";
    gout<<setPos(150,295)<<"Please re-run program and enter larger amount!/n";
    return-1;
}
    if (((rv1+rv2)%2)=0)
    {   gout<<setPos(200,280)<<"Dice total"<<(rv1+rv2)<<endg;
        cout<<"You win $2 extra for even roll!/n";
        cout<<"Your winnings:$2+Original Wager:$"<<wager<<"=$"<<wager+2<<endg;
}
    if(rv1+rv2=7)
    {gout<<setPos(200,280)<<"Dice total"<<(rv1+rv2)<<endg;
        cout<<"Youre lucky today!/n";
        cout<<"You double your wager/n";
        cout<<"Your winnings:$10+Original Wager=$"<<wager<<"=$"<<wager*2<<endg;
}
    if(((rv1+rv2)%2)=1)
    {gout<<setPos(200,280)<<"Dice total"<<(rv1+rv2)<<endg;
        cout<<"You lose $2 for odd roll!/n";
        cout<<"Original Wager:$"<<wager<<"Losses:$2=$"<<wager-2<<endg;
        }
return 0;
}

=用于C++中的变量赋值。您需要使用==进行比较测试:

if (((rv1+rv2)%2)==0)

也要注意,如果语句条件写成这样:

if(rv1=1)

由于CCD_ 3返回分配的结果CCD_。这就是为什么一些C++程序员编写这样的条件:

if(1==rv1)

防止您意外忘记第二个=,因为:

if(1=rv1)

是一个编译时错误。当然,像这样的写作条件主要是风格的问题。我个人不使用这种方法,因为在我看来,它读起来不太好。

在if语句中处处使用赋值运算符=,而不是从这里开始使用比较运算符==

if(rv1=1)
{cout<<displayBMP("1.bmp",200,150);}

必须有

if(rv1 == 1)
{cout<<displayBMP("1.bmp",200,150);}

等等。.

相关文章: