Defekt? Ale gdzie? 4

alt

Błąd goni błąd. Znajdź następny.


Poniższy fragment kodu C++ zawiera błąd. Znajdź go:
   
    int value;
   
    do
    {
      //....
   
      value = rand()%30;

      if (value > 20) {
        value -= rand()%40 / 2;
      }

    }
    while(!(value==5) || !(value==10));
   





































































   
   
Odpowiedź:
Jedynym przypadkiem, dla którego pętla może zostać przerwana, jest sytuacja gdy warunki value==5 i value==10 są prawdziwe jednocześnie ( a nie mogą być ).
Pętla będzie wykonywała się w nieskończoność.
Dla tak napisanego warunku zamiast operatora OR należy użyć AND:
     
      !(value==5) && !(value==10)
 

Najbliższe terminy szkoleń

 

17-18 października - Katowice

Testowanie wydajności


17-18 października - Kraków

Administracja JIRA na poziomie projektowym


24-25 października - Kraków

Od Testera do Managera


24-25 października - Kraków

Dobry Przypadek Testowy - Laboratorium

 

Partnerzy

Narzędzia testerskie