ID: 2855 OOP - Podstawy Średnie

Źródło: Arkusze CKE

W zaprezentowanym fragmencie kodu występuje błąd logiczny. Na czym on polega?

int x = 0;
while (x != 0 || x != 5) {
std::cout << x << " ";
x++;
}

Warianty odpowiedzi

  1. A

    Niewłaściwym warunku pętli, co powoduje, że pętla nigdy się nie wykona.

  2. B

    Braku zainicjowania zmiennej x, co powoduje, że zmienna nie ma wartości początkowej.

  3. C

    Niepoprawnym użyciu funkcji cout, co skutkuje tym, że zmienna jest wczytywana w pętli.

  4. D

    Nieprawidłowym warunku pętli, który sprawia, że pętla jest nieskończona.

Wyjaśnienie

Spójrz na warunek w pętli: x != 0 || x != 5. Użyto tu spójnika LUB (||).

Aby pętla się zatrzymała, cały warunek musiałby okazać się fałszywy. Jednak dla dowolnej liczby x niemożliwe jest, aby była ona jednocześnie równa 0 oraz równa 5.

Gdy x wynosi 0, drugi członek (0 != 5) jest prawdziwy, więc pętla działa. Gdy x wzrośnie do 5, pierwszy członek (5 != 0) staje się prawdziwy i pętla znów się wykonuje.

Ten błąd logiczny sprawia, że warunek zawsze zwraca prawdę, co tworzy nieskończoną pętlę.

Sprawdź się w praktyce

Rozwiąż pełny test próbny INF.04 albo wylosuj pojedyncze pytanie na szybką powtórkę.

Podobne pytania — OOP - Podstawy