我在一个月前开始编程,我在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);
}
}
答案 0 :(得分:14)
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 );
答案 1 :(得分:3)
++a
是预增量。这意味着a
在返回a
的值之前会增加。
a++
是一个后增量。这意味着{/ 1}}在返回a
的值后递增。
换句话说,a
给出a++
的当前值,然后递增它。虽然a
直接递增++a
。如果a
则a=42
提供System.out.println(a++)
而42
提供System.out.println(++a)
,而现在43
提供a=43
。
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
答案 2 :(得分:1)
逐字逐句解释:
import java.util.Scanner; // Import Scanner
public class Number { // Create Java class called Number
public static void main(String[] args) { // Define the main function
Scanner keyboard = new Scanner(System.in); // Initialize the scanner
int number = keyboard.nextInt(); // Read an integer from standard input
int division1 = (number++) % 10; // Take the unit digit of number, then increase number by 1
number = number / 10; // Divide number by 10
// Take the tens digit of the original number (or tens digit + 1, if the unit was 9), sum with the unit digit previously stored in division1
System.out.println(number % 10+division1);
// The result would sum the last two digit of number if it doesn't end with 9, or sum the last two digit +1 if the unit was 9.
}
}
有些情况:
f(1) = 1 f(124) = 2+4 = 6 f(39) = 4+9 = 13 f(5248) = 4+8 = 12
答案 3 :(得分:0)
++ a是预增量。这意味着在评估表达式之前a会递增。
a ++是一种后增量。这意味着在评估表达式后a会增加。
初学者可能会感到困惑的一件事是这个'表达'是什么,之后会发生增量 实际上是; 使用++时,它位于“;”之后当增量实际发生时 当你使用++ a时;就像你在这个之前插入一个声明a = a + 1然后你的表达来了。
答案 4 :(得分:0)
我认为,有趣的部分是以下几行:
int number = keyboard.nextInt();
在这里,您可以获得用户的输入。说,他进入12
int division1 = (number++) % 10;
division1
将变为2,因为12 mod 10等于2。
之后,number
将增加1,现在为13
现在我们假设有一个++number
而不是number++
。在这种情况下,我们会在模运算之前增加number
。首先,number
变为13,然后我们将3分配给division1
。
这是a++
和++a
的基本内容 - 时间,当值增加时。 a++
表示所有操作都按原样使用a
,最后一步,a
会递增。 ++a
以其他顺序工作。