++a是一个预增量。这意味着在返回 的值之前a递增。a
a++是后增量。这意味着在返回 的值后a递增。a
换句话说,a++给出 的当前值,a然后将其递增。而++a直接递增a。如果a=42thenSystem.out.println(a++)给出42whileSystem.out.println(++a)给出43and 在这两种情况下,a=43现在。
OP 还要求对该代码进行逐行解释:
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);
}
}
我想,只有函数内部的代码main需要一些解释:
// 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);
这条线int division1 = (number++) % 10;可能不是很清楚。像这样阅读会更简单:
int division1 = number % 10;
number += 1;
现在,解释函数的作用:
如果number = 142,我们将 2 放入变量division1,则 number 递增并除以 10。因此 number 得到值 14 ((142+1) / 10)。现在我们打印数字 % 10 + 除法 1,即 4 + 2 = 6。
这里有一些结果示例(我自己编译了代码):
3 => 3
9 => 10
10 => 1
248 => 12