
-----------------------------------
slider203
Mon Mar 01, 2010 8:03 pm

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.

-----------------------------------
Zren
Mon Mar 01, 2010 8:08 pm

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.

-----------------------------------
slider203
Mon Mar 01, 2010 8:10 pm

RE:negative numbers and loops
-----------------------------------
also Its the ++ line shouldnt it be --?

-----------------------------------
slider203
Mon Mar 01, 2010 8:13 pm

Re: RE:negative numbers and loops
-----------------------------------


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

-----------------------------------
Zren
Mon Mar 01, 2010 8:24 pm

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) {}
