++a
是一个预增量。这意味着在返回 的值之前a
递增。a
a++
是后增量。这意味着在返回 的值后a
递增。a
换句话说,a++
给出 的当前值,a
然后将其递增。而++a
直接递增a
。如果a=42
thenSystem.out.println(a++)
给出42
whileSystem.out.println(++a)
给出43
and 在这两种情况下,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