diff --git a/Module8/Visitors/GenCodeVisitors/GenCodeVisitor.cs b/Module8/Visitors/GenCodeVisitors/GenCodeVisitor.cs
index ec7f3812f119f8566a04cf43e7779ceb47416c6f..9bb671e534480b5b1dfefb4185ea030c84126312 100644
--- a/Module8/Visitors/GenCodeVisitors/GenCodeVisitor.cs
+++ b/Module8/Visitors/GenCodeVisitors/GenCodeVisitor.cs
@@ -99,13 +99,13 @@ namespace SimpleLang.Visitors
 
         public override void VisitIfNode(IfNode i)
         {
-            var x = genc.DeclareLocal(typeof(int)); //переменная условного выражения 
+            //var x = genc.DeclareLocal(typeof(int)); //переменная условного выражения 
             i.expr.Visit(this);
-            genc.Emit(OpCodes.Stloc, x); // x := значение условного выражения
+            //genc.Emit(OpCodes.Stloc, x); // x := значение условного выражения
 
             Label jmp = genc.DefineLabel();
 
-            genc.Emit(OpCodes.Ldloc, x);
+            //genc.Emit(OpCodes.Ldloc, x);
             genc.Emit(OpCodes.Ldc_I4_0);
             genc.Emit(OpCodes.Ble, jmp); // if x<=0 then goto jmp
 
@@ -119,25 +119,24 @@ namespace SimpleLang.Visitors
 
         public override void VisitWhileNode(WhileNode wh)
         {
-            var x = genc.DeclareLocal(typeof(int)); //переменная цикла с условием
-            wh.Expr.Visit(this);
-            genc.Emit(OpCodes.Stloc, x); // x := значение условного выражения в цикле 
+            //wh.Expr.Visit(this);
+            //genc.Emit(OpCodes.Stloc, x); // x := значение условного выражения в цикле 
 
             Label stop = genc.DefineLabel();
             Label back = genc.DefineLabel();
 
             genc.MarkLabel(back);
 
-            genc.Emit(OpCodes.Ldloc, x);
+            wh.Expr.Visit(this);
             genc.Emit(OpCodes.Ldc_I4_0);
-            genc.Emit(OpCodes.Ble, stop); // if x<=0 then goto stop
+            genc.Emit(OpCodes.Beq, stop); // if x == 0 then goto stop
 
             wh.Stat.Visit(this);
 
-            genc.Emit(OpCodes.Ldloc, x); // положить x на стек
+            /*genc.Emit(OpCodes.Ldloc, x); // положить x на стек
             genc.Emit(OpCodes.Ldc_I4_1); // положить 1 на стек
             genc.Emit(OpCodes.Sub);
-            genc.Emit(OpCodes.Stloc, x); // x := x - 1;
+            genc.Emit(OpCodes.Stloc, x); // x := x - 1;*/
 
             genc.Emit(OpCodes.Br, back);
 
@@ -146,7 +145,7 @@ namespace SimpleLang.Visitors
 
         public override void VisitRepeatNode(RepeatNode rp)
         {
-            var x = genc.DeclareLocal(typeof(int)); //переменная цикла с постусловием
+            //var x = genc.DeclareLocal(typeof(int)); //переменная цикла с постусловием
 
             Label stop = genc.DefineLabel();
             Label back = genc.DefineLabel();
@@ -157,16 +156,16 @@ namespace SimpleLang.Visitors
                 st.Visit(this);
 
             rp.Expr.Visit(this);
-            genc.Emit(OpCodes.Stloc, x);
+            //genc.Emit(OpCodes.Stloc, x);
 
-            genc.Emit(OpCodes.Ldloc, x);
+            //genc.Emit(OpCodes.Ldloc, x);
             genc.Emit(OpCodes.Ldc_I4_0);
-            genc.Emit(OpCodes.Ble, stop); // if x<=0 then goto stop
+            genc.Emit(OpCodes.Beq, stop); // if x == 0 then goto stop
 
-            genc.Emit(OpCodes.Ldloc, x); // положить x на стек
+            /*genc.Emit(OpCodes.Ldloc, x); // положить x на стек
             genc.Emit(OpCodes.Ldc_I4_1); // положить 1 на стек
             genc.Emit(OpCodes.Sub);
-            genc.Emit(OpCodes.Stloc, x); // x := x - 1;
+            genc.Emit(OpCodes.Stloc, x); // x := x - 1;*/
 
 
             genc.Emit(OpCodes.Br, back);