Erro C ++ LValue necessário como operando esquerdo da atribuição

Erro C ++ LValue necessário como operando esquerdo da atribuição
Às vezes, temos que usar declarações condicionais como o operador de atribuição “=”. Existem dois propósitos deste operador: um é para atribuir o valor a qualquer variável e o segundo inclui a combinação de dois “= =” que são usados ​​para comparar duas variáveis ​​ou valores. Em alguns casos, quando usamos esses operadores, ele retorna a mensagem de erro "A expressão deve ser um LValue modificável". Este é o erro de programação C ++ mais típico que se pode encontrar. Então, não precisamos nos preocupar com isso, não é um grande problema enfrentar esse tipo de erro. Este erro ocorre quando estamos usando expressões condicionais e, em vez da comparação “= =” Operador. Usamos a atribuição “=” Operador. Se o compilador atender a esse tipo de situação, exibe a mensagem de erro sem executá -lo com sucesso.

Para resolver esse tipo de erro, temos que passar por nosso código novamente para verificar o motivo que causa esse erro. Às vezes, fica difícil ler os longos programas. Para reduzir isso, apenas verificamos a linha em que o erro está ocorrendo. A linha que está tendo um erro também é exibida para facilitar a descoberta.

Sintaxe:

Erro: LValue exigido como Oprand da atribuição esquerda

Não é o código ou o método que deve ser definido com uma sintaxe predefinida. É apenas uma mensagem de erro que é exibida quando o operador de comparação é misturado com o operador de atribuição. Então, a mensagem é exibida como um erro mostrado acima. Neste erro, "lvalue" é o valor que aparecerá no lado esquerdo desse operador.

Exemplo # 01:

Agora, realizaremos um exemplo para verificar como esse erro ocorre. E usando a linha de código correta, removeremos este erro também. Mudando para o nosso código principal, primeiro incluiremos nossos arquivos de cabeçalho, o "iostream" usado para executar várias operações de entrada e saída como "cout", "CIN", etc. Depois disso, incluímos "Usando o namespace std". o que significa que podemos usar os nomes de variáveis ​​e o nome dos objetos fornecidos pelas bibliotecas padrão. Agora, indo em direção à nossa função principal, declaramos primeiro uma variável inteira chamada "Myvar" à qual atribuímos o valor "5".

Na próxima linha, usamos a declaração if () com a qual passamos a condição "5 = myvar" que estamos usando para comparar o valor "5" com a variável "myvar". Se a condição for atendida, exibirá a mensagem "O valor de Myvar é 5". Executaremos o código usando o comando "F7" ou apenas clicando no botão "Executar".

#incluir
usando namespace std;
int main ()

int myvar = 5;
se (5 = myvar)

std :: cout << "The value of myvar is 5" << std::endl;

Vamos verificar a saída do nosso código. Conforme exibido no trecho, o erro é exibido, o que mostra que há um erro dentro da função principal, o tipo de erro é exibido no texto de cor vermelha que informa o "LValue necessário como operando esquerdo da atribuição". Não é necessário que toda vez que houver um erro, o texto será o mesmo. Em alguma versão, ela é exibida de maneira diferente como "Erro: a expressão deve ser um LValue modificável". Após a linha de erro, o número de linhas nas quais o erro ocorre é exibido. No nosso caso, é "6" também o símbolo de erro indica que o erro ocorre dentro da instrução IF, o que significa que escrevemos a condição errada dentro da declaração se. Agora, vamos remover o erro e verificar o que acontecerá depois de removê -lo.

Para remover o erro, substituímos a condição de "5 = myvar" por "5 = = myvar". A condição que passamos para gerar o código de erro é usada para atribuir o valor à variável. Na instrução if (), passamos a condição do tipo de comparação como um parâmetro. Não podemos atribuir o valor à variável; Essa é a razão da ocorrência do erro. Depois de substituir a condição pela correta, exibimos com sucesso o código interno, que foi a mensagem que deve ser impressa.

Exemplo # 02:

Neste exemplo, criaremos três variáveis ​​e compararemos o resultado da subtração de duas variáveis ​​com a terceira usando a instrução if (). Se a condição for atendida, exibirá a mensagem. Depois de incluir arquivos de cabeçalho, criaremos três variáveis ​​inteiras "VAR1", VAR2 "e" VAR3 "para as quais atribuímos os valores" 10 "," 4 "e" 6 ". Então, chamamos a declaração if () que passamos a subtração do "var1" e "var2". Usando o operador "=", comparamos o valor resultante de "var1-Var2" com o "VAR3". Se a condição for atendida, ela se moverá para dentro da instrução IF e executará a mensagem de que passamos para a declaração "cout", que a "subtração de var1 e var2 é igual ao var3". Por último, retornando o valor nulo para executar o código com sucesso.

#incluir
usando namespace std;
int main ()

int var1 = 10;
int var2 = 4;
int var3 = 6;
if ((var1 - var2) = var3)

std :: cout <<"subtraction of var1 and var2 is equal to the var3" << std::endl;

retornar 0;

Após a execução do código, temos um erro exibido na seção de saída que mostra que há um erro na linha "8". O tipo de erro é "LValue exigido como operando esquerdo da atribuição". Isso significa que o valor esquerdo é necessário no lado esquerdo do operador de atribuição para que não passemos o valor para a variável. Em vez disso, temos que comparar o valor porque a instrução if () é usada para comparar as condições para não atribuir os valores ao operador. Agora vamos resolver o erro colocando "= =" em vez de "=".

Depois de substituir o operador de comparação pelo operador de atribuição, obtemos a saída desejada. A subtração de "var1" e "var2" é "6" e o valor de "var3" também é "6" quando a declaração if compara os dois, se torna verdadeiro. Então, o compilador se move para dentro da instrução if e exibe a mensagem.

Conclusão

Neste tutorial, estudamos o erro que pode ocorrer devido ao descuido do codificador ou às vezes ocorre devido ao equívoco entre a atribuição e os operadores de comparação por novos codificadores. Com a ajuda de exemplos, discutimos brevemente o método para resolver esse tipo de erro e também a maneira de encontrar o erro.