Hi,

I'm trying to reverse the ordering of number.

I'm given an array of size.. say, 5. WITHIN a do-while loop, I must iterate from element 0 to 4.

For example, if the element contains ["Apple", "Banana", "Cow", "Dog", "Egg"], the output of the do-while loop has to be:

Apple Banana Cow Dog Egg

I have tried (in C#):

``````int numOfElements = array.Count;    //Number of elements.

do
{
TextBox.Text += array[numOfElements-1] + " ";
numOfElements--;
}
while (numOfElements != 0);
``````

...but obviously this will print out "Egg Dog Cow Banana Apple", which is the reverse order of what I'm tring to achieve.

So how can I make it print it in the correct order, within the Do-While loop? Some mathematical work involved in my opinion...?

Thank you!

3
Contributors
2
Replies
4
Views
5 Years
Discussion Span
Last Post by firstPerson

Um...what? So you're trying to traverse an array with a do..while loop in forward order?

``````int i = 0;

do
Console.Write(array[i] + " ");
while (++i < array.Count);
``````

Or if you can't have a counter starting from 0 and must have a descending counter starting from `array.Count`, the difference of the counter and `array.Count` will give you what you want:

``````int i = array.Count;

do
Console.Write(array[array.Count - i] + " ");
while (--i != 0);
``````

Edited by deceptikon

It is conventional and more readable to use a for loop or a foreach loop, if the language has one.

``````for(int i = 0; i < array.Count; ++i){
Console.Write( array[i] );
}
``````
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.