Computer Science Canada negative numbers and loops |
Author: | slider203 [ Mon Mar 01, 2010 8:03 pm ] |
Post subject: | negative numbers and loops |
Hello I need to make a program which starts at -9 adds -5 each time throught the loop and exits when the loop is at -200 heres my code: class ngtvLoop { public static void main (String args []) { int negatvNum = -9; final int Max = -200; final int factor = -5; int sum = 0; while (sum < Max) { negatvNum ++; sum = negatvNum + factor; System.out.println (sum); } } } when I run it nothing happens anyone know what Im doing wrong I have a feeling its the negative numbers because I tried the program with just 9 and 5 and it work fine. Any help is greatly appreciated. |
Author: | Zren [ Mon Mar 01, 2010 8:08 pm ] |
Post subject: | RE:negative numbers and loops |
Since when is -9 smaller than -200. Think number line buddy. -200, ..., -9, ..., -5, ... ,0 , 1, 2, 3, 4, ... PS: it's this line: while (sum < Max) Edit: wait, your also increment another thing as well. After 14 interations of the loop, your loop will be only going upward. |
Author: | slider203 [ Mon Mar 01, 2010 8:10 pm ] |
Post subject: | RE:negative numbers and loops |
also Its the ++ line shouldnt it be --? |
Author: | slider203 [ Mon Mar 01, 2010 8:13 pm ] |
Post subject: | Re: RE:negative numbers and loops |
Zren @ Mon Mar 01, 2010 8:08 pm wrote: Edit: wait, your also increment another thing as well. After 14 interations of the loop, your loop will be only going upward. sorry I dont get how that happens... your right I saw that happen when I ran the program I just dont see the error in the code |
Author: | Zren [ Mon Mar 01, 2010 8:24 pm ] |
Post subject: | Re: negative numbers and loops |
Best debugging tool is System.out.print(). Just print out the varibles for every interation (including the ones used in your logic). But I'll tell you what's happening anyways... negatvNum ++; sum = negatvNum + factor; pass 1: negatvNum = -9 ++ = -8 sum = -8 + -5 = -13 sum = -13 pass 2: negatvNum = -8 ++ = -7 sum = -7 + -5 = -12 sum = -25 pass 3: negatvNum = -7 ++ = -6 sum = -6 + -5 = -11 sum = -36 I also think you meant to have sum += factor. As you can see, negatyNum is slowly going positive. After 14 passes, it will equal +5. At that time when you add negatvNum and factor together, it equals 0. And from then on, sum will be incremented by a positive number thus going upwards. Why do you need negatyNum anyways? Take it out and you'll have the desire effect. -9, -14, ..., -204 I suggest the use of For Loops. for (int i = 6; i > 140; i += 5) {} |