WHILE problem.. need help!

The while statement is used for two purposes. The first is to create an infinite loop.

while(1)
{
   // Do something
}

The second is to create a loop that repeats for an unknown number of times.

unsigned long interval = 5000;
unsigned long then = millis();
while((millis() - then) > interval)
{
   // Do something
}

In the first case, the loop will never terminate. In the second case, the loop will terminate, but we have no idea how many times it will be executed, because the length of time it takes to execute the loop is unknown.

Another indeterminate example:

char inByte = 'A';
while(Serial.available() && inByte != '\n')
{
   inByte = Serial.read();
}

This loop will terminate when there is no more data to read, or when the data read was a \n.

In the two cases that terminate, the while clause depends on something that changes.

In your case, you never change the value of i in the body of the loop or in the while clause itself, so the loops you have set up are infinite loops.

look people , i know my code is fine !

Look, DIXIS, it isn't.