Błąd C ++ wymagany jako lewy operand przypisania

Błąd C ++ wymagany jako lewy operand przypisania
Czasami musimy użyć instrukcji warunkowych, takich jak operator przypisania „=”. Istnieją dwa cele tego operatora: jeden służy przypisywaniu wartości do dowolnej zmiennej, a drugi zawiera kombinację dwóch „= =”, która jest używana do porównywania dwóch zmiennych lub wartości. W niektórych przypadkach, gdy używamy tych operatorów, zwraca komunikat o błędzie „Wyrażenie musi być modyfikowalną LValue”. To najbardziej typowy błąd programowania C ++, który można spotkać. Więc nie musimy się o to martwić, nie jest to duży problem, aby stawić czoła takiego błędu. Ten błąd występuje, gdy używamy wyrażeń warunkowych i zamiast operatora porównania „= =”. Używamy operatora przypisania „=”. Jeśli kompilator spełnia tego rodzaju sytuację, wyświetla komunikat o błędzie bez pomyślnego wykonania.

Aby rozwiązać taki rodzaj błędu, musimy ponownie przejść przez nasz kod, aby sprawdzić powód, który powoduje ten błąd. Czasami trudno jest odczytać długie programy. Aby to zmniejszyć, po prostu sprawdzamy linię, w której występuje błąd. Wyświetlana jest również linia, która ma błąd, aby ułatwić dowiedzieć się.

Składnia:

Błąd: wymagana lValue jako lewa oprand przypisania

To nie jest kod lub metoda, którą należy zdefiniować za pomocą predefiniowanej składni. Jest to tylko komunikat o błędzie wyświetlany, gdy operator porównawczy jest mieszany z operatorem przypisania. Następnie komunikat jest wyświetlany jako błąd, który jest pokazany powyżej. W tym błędzie „LVALUE” to wartość, która pojawi się po lewej stronie tego operatora.

Przykład nr 01:

Teraz wykonamy przykład, aby sprawdzić, jak występuje ten błąd. Korzystając z prawidłowej linii kodu, usuniemy również ten błąd. Przechodząc do naszego głównego kodu, najpierw dołączymy nasze pliki nagłówka, „iostream”, który służy do wykonywania różnych operacji wejściowych, takich jak „Cout”, „CIN” itp. Następnie uwzględniliśmy „Używanie przestrzeni nazw”; co oznacza, że ​​możemy użyć nazw zmiennych i nazwy obiektów dostarczanych przez standardowe biblioteki. Teraz, zmierzając w kierunku naszej głównej funkcji, najpierw zadeklarowaliśmy zmienną liczbową o nazwie „Myvar”, do której przypisaliśmy wartość „5”.

W następnym wierszu użyliśmy instrukcji if (), do której przeszliśmy warunek „5 = myvar”, którego używamy do porównania wartości „5” ze zmienną „myvar”. Jeśli warunek zostanie spełniony, wyświetli komunikat „Wartość myvar wynosi 5”. Uruchomimy kod za pomocą polecenia „F7” lub po prostu klikając przycisk „Uruchom”.

#włączać
za pomocą przestrzeni nazw Std;
int main ()

int myvar = 5;
if (5 = myvar)

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

Sprawdźmy wyjście naszego kodu. Jak wyświetlono w fragmencie, wyświetlany jest błąd, który pokazuje, że występuje błąd wewnątrz głównej funkcji, typ błędu jest wyświetlany w czerwonym kolorze, który mówi „LValue wymagana jako lewa operand” przypisania ”. Nie jest konieczne, aby za każdym razem, gdy wystąpił błąd, tekst będzie taki sam. W niektórych wersjach jest wyświetlany inaczej, podobnie jak „błąd: wyrażenie musi być modyfikowalną lValue”. Po wierszu błędu wyświetlana jest liczba linii, na których występuje błąd. W naszym przypadku jest to „6” również symbol błędu wskazuje, że błąd występuje wewnątrz instrukcji IF, co oznacza, że ​​napisaliśmy niewłaściwy warunek w instrukcji IF. Teraz usuńmy błąd i sprawdź, co się stanie po jego usunięciu.

W celu usunięcia błędu zastąpiliśmy warunek z „5 = myvar” na „5 = = myvar”. Warunki, które przekazaliśmy w celu wygenerowania kodu błędu, jest używany do przypisania wartości do zmiennej. W instrukcji if () przekazujemy warunek typu porównawczego jako parametr. Nie możemy przypisać wartości do zmiennej; To jest powód wystąpienia błędu. Po zastąpieniu warunku właściwym z powodzeniem wyświetliśmy wewnętrzny kod, który był komunikatem, który ma zostać wydrukowany.

Przykład nr 02:

W tym przykładzie utworzymy trzy zmienne i porównamy wynik odejmowania dwóch zmiennych za pomocą trzeciej przy użyciu instrukcji if (). Jeśli warunek zostanie spełniony, wyświetli wiadomość. Po uwzględnieniu plików nagłówka utworzymy trzy zmienne liczb całkowitych „var1”, var2 ”i„ var3 ”, do których przypisaliśmy wartości„ 10 ”,„ 4 ”i„ 6 ”. Następnie nazwaliśmy instrukcję if (), które przeszliśmy odejmowanie „var1” i „var2”. Korzystając z operatora „=”, porównujemy wynikową wartość „var1-var2” z „var3”. Jeśli warunek zostanie spełniony, porusza się wewnątrz instrukcji IF i wykona wiadomość, którą przekazaliśmy do instrukcji „Cout”, że „odejmowanie VAR1 i VAR2 jest równe VAR3”. Na koniec zwrócenie wartości zerowej w celu pomyślnego wykonania kodu.

#włączać
za pomocą przestrzeni nazw 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;

powrót 0;

Po wykonaniu kodu mamy błąd wyświetlany w sekcji wyjściowej, który pokazuje, że istnieje błąd w wierszu „8”. Rodzaj błędu jest „wymagany LVELUE jako lewy operand przydziału”. Oznacza to, że lewa wartość jest wymagana po lewej stronie operatora przypisania, abyśmy nie przekazali wartości do zmiennej. Zamiast tego musimy porównać wartość, ponieważ instrukcja if () służy do porównania warunków, aby nie przypisać wartości do operatora. Teraz rozwiążemy błąd, umieszczając „= =” zamiast „=”.

Po wymianie operatora porównawczego operatorem przypisania otrzymujemy pożądane wyjście. Odejmowanie „var1” i „var2” wynosi „6”, a wartość „var3” jest również „6”, gdy instrukcja IF porównuje je oba staje się prawdziwe. Tak więc kompilator porusza się w instrukcji IF i wyświetla wiadomość.

Wniosek

W tym samouczku zbadaliśmy błąd, który może wystąpić z powodu nieostrożności kodera lub czasami występuje z powodu nieporozumienia między przypisaniem a operatorami porównawczymi przez nowych koderów. Za pomocą przykładów krótko omówiliśmy metodę rozwiązania tego rodzaju błędu, a także sposobu znalezienia błędu.