When should I use pre decrement and when to use post decrement?
and for the following code snippet, should I use pre or post decrement.
static private void function(int number)
{
charArr = new char[number];
int i = 0;
int tempCounter;
int j = 0;
while(charrArr!=someCharArr)
{
tempCounter = number - 1;
password[tempCounter] = element[i%element.Length];
i++;
//This is the loop the I want to use the decrementing in.
//Suppose I have a char array of size 5, the last element of index 5 is updated
//in the previous statement.
//About the upcoming indexes 4, 3, 2, 1 and ZERO.
//How should I implement it?
// --tempCounter or tempCounter-- ?
while (charArr[--tempCounter] == element[element.Length - 1])
{
}
}
}
You use pre-decrement if you want to decrement the variable before the value is passed on to the remaining expression. On the other hand, a post-decrement evaluates the expression before the variable is decremented:
int i = 100, x;
x = --i; // both are 99
and
int i = 100, x;
x = i--; // x = 100, i = 99
The same obviously is true for increments.
charArr[--tempCounter]
will differ in the value from charArr[tempCounter--]
in the condition of the while loop. This will decrement the tempCounter
before checking the condition. - sikaswhile
-expression. - sjngm
you should have ++i;
(not that it matters), and should have tempCounter--
Otherwise you will miss the "first" index of charArr
last index - 1
till index = ZERO
. so in the condition of the loop should I use tempCounter--
or --tempCounter
? - sikas--i;
may be faster, but is never slower than i--;
. But we both know a line like i--;
will be compiler optimized especially when i is of type int. - EnabrenTanewhile(tempCounter > 0) { charArr[tempCounter--] = /* value */ }
- EnabrenTane
tempCounter = number;
,password[tempCounter - 1]
andcharArr[--tempCounter]
despite the fact that thewhile
-loop will work on a non-initialized array andtempCounter
can become negative. - sjngm