Ten fragment realizuje prostą logikę synchronizacji: najpierw porównuje dwie wartości, a potem (tylko gdy są różne) wyrównuje jedną z nich.
Co robi warunek?
Wyrażenie tractor1.speed != tractor2.speed sprawdza, czy prędkości dwóch obiektów różnią się. To etap kontroli stanu – jeszcze bez zmiany danych.
Co robi blok w nawiasach klamrowych?
Instrukcja tractor2.speed = tractor1.speed; jest przypisaniem: po jej wykonaniu prędkość zapisana w tractor2.speed staje się równa prędkości z tractor1.speed. Oznacza to, że to tractor2 "dopasowuje się" do tractor1, a nie odwrotnie.
Dlaczego poprawna jest odpowiedź "Synchronizacja prędkości traktora2 z prędkością traktora1."?
Bo dokładnie taki jest skutek: po wykonaniu kodu (gdy wartości były różne) obie prędkości są równe, a źródłem wartości jest tractor1.
Dlaczego pozostałe odpowiedzi są niepoprawne?
- "Zwiększenie prędkości traktora1 do prędkości traktora2." – kod nie zmienia tractor1.speed w ogóle. Nie ma tu przypisania do tractor1.
- "Sprawdzenie, czy oba traktory mają taką samą prędkość." – sam warunek faktycznie porównuje prędkości, ale celem całego fragmentu jest również zmiana prędkości tractor2, jeśli wystąpi różnica. To nie jest "tylko sprawdzenie".
- "Zmniejszenie prędkości traktora1 do prędkości traktora2." – ponownie: nie ma operacji na tractor1.speed. Dodatkowo przypisanie nie oznacza wprost "zmniejszenia"; może ustawić wartość większą albo mniejszą, zależnie od danych.
Wskazówka egzaminacyjna: przy takich zadaniach zawsze wskaż, która zmienna jest po lewej stronie znaku = – to ona zostanie nadpisana (zmieniona).