++a
is a pre-incrementation. Which means that a
is incremented before returning the value of a
.
a++
is a post-incrementation. Which means that a
is incremented after returning the value of a
.
In other words, a++
gives the current value of a
and then increment it. While ++a
directly increment a
. If a=42
then System.out.println(a++)
gives 42
while System.out.println(++a)
gives 43
and in both cases, a=43
now.
OP also asked for a line by line explanation of that code:
import java.util.Scanner;
public class Number {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int number = keyboard.nextInt();
int division1 = (number++) % 10;
number = number / 10;
System.out.println(number % 10+division1);
}
}
I guess, only the code inside the main
function need some explanations :
// Create a Scanner object that read from the standard input.
Scanner keyboard = new Scanner(System.in);
// Read an integer.
int number = keyboard.nextInt();
// put (number % 10) into variable division1 and then increment `number`.
int division1 = (number++) % 10;
// Divide number by 10.
number = number / 10;
// Print that expression :
System.out.println(number % 10+division1);
The line int division1 = (number++) % 10;
might not be very clear. It would be simpler to read like that:
int division1 = number % 10;
number += 1;
Now, the explanation of what the function does:
If number = 142
, we put 2 into variable division1
, then number is incremented and divided by 10. So number gets the value 14 ((142+1) / 10). And now we print number % 10 + division1 which is 4 + 2 = 6.
Here some examples of results (I've compiled the code myself):
3 => 3
9 => 10
10 => 1
248 => 12