2016-09-28 2 views
-7

Я хочу знать, почему это бесконечный цикл.Бесконечная ошибка цикла с использованием оператора while

Сценарий выглядит следующим образом:

x=1; 
    while x<5; 
    x=2; 
    x=x+2; 
    if x==4; 
     x=x-1; 
    end 
    end 
+5

Почему это помечено как C++? – EJoshuaS

+3

Почему это даже здесь? используйте карандаш и бумагу и продумайте сами! –

+0

Я немного незнакомы с синтаксисом, но похоже, что они устанавливают x на 2 на каждой итерации, а если x достигает 4, они вычитают 1, поэтому, очевидно, x не может достигнуть 5. На самом деле, если я читаю это право x должно содержать 3 в конце каждой отдельной итерации (исправьте меня, если я ошибаюсь). – EJoshuaS

ответ

0

Шаг через это, чтобы понять, почему х всегда будет меньше, чем 5:

x=1; 
while x<5; 
    x=2; // You set x to 2 at the beginning of every single iteration 
    x=x+2; // At this point, x == 4 
    if x==4; // The "if" is unnecessary - of COURSE x == 4 - how could it possibly be anything else? 
    x=x-1; // x now contains 3 
    end 
end 

В начале каждой итерации, то х == 2. В конце итерации x == 3.

+0

Спасибо EJoshuaS –