我大约一个月前就开始编程了,在java的操作符++a,a++上我遇到了一些困难。谁能帮我解释一下这个程序吗?
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);
}
} 发布于 2013-10-10 09:50:57
int division1 = (number++) % 10;相当于:
int division1 = number % 10;
number += 1;而
int division1 = (++number) % 10;相当于:
number += 1;
int division1 = number % 10; 基本上,您的代码相当于:
int number = new java.util.Scanner(System.in).nextInt();
System.out.println( ((number + 1) / 10) % 10 + number % 10 ); 发布于 2013-10-10 09:52:57
++a是一个预增量.这意味着a在返回a值之前是递增的a。
a++是一个后增量。这意味着a是在返回a值之后递增的。
换句话说,a++给出a的当前值,然后增加它。而++a直接增加a。如果a=42那么System.out.println(a++)给42,而System.out.println(++a)给43,在这两种情况下,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中,然后将数字递增并除以10,因此数字得到了值14 ((142+1) / 10)。现在我们打印数字% 10 + division1,是4+2= 6。
下面是一些结果示例(我自己编写了代码):
3 => 3
9 => 10
10 => 1
248 => 12发布于 2013-10-10 09:58:34
++a是一个预增量.这意味着在计算表达式之前将递增。
a++是一个后增量。这意味着在计算表达式后,a将增加。
初学者可能会感到困惑的一件事是,这个‘表达式’是什么?在这个‘表达式’之后,它实际上是;当您使用a++时,它是在";“之后;当增量实际发生时,当您使用++a时;就像您在这个语句之前插入一个语句,表示a=a+1,然后是您的表达式。
https://stackoverflow.com/questions/19292479
复制相似问题