首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >a++,++a的困难

a++,++a的困难
EN

Stack Overflow用户
提问于 2013-10-10 09:49:37
回答 4查看 1.2K关注 0票数 1

我大约一个月前就开始编程了,在java的操作符++a,a++上我遇到了一些困难。谁能帮我解释一下这个程序吗?

代码语言:javascript
复制
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); 
 } 
} 
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-10 09:50:57

代码语言:javascript
复制
int division1 = (number++) % 10;

相当于:

代码语言:javascript
复制
int division1 = number % 10; 
number += 1;

代码语言:javascript
复制
int division1 = (++number) % 10;

相当于:

代码语言:javascript
复制
number += 1;
int division1 = number % 10; 

基本上,您的代码相当于:

代码语言:javascript
复制
int number = new java.util.Scanner(System.in).nextInt(); 
System.out.println( ((number + 1) / 10) % 10 + number % 10 ); 
票数 14
EN

Stack Overflow用户

发布于 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还要求逐行解释该代码:

代码语言:javascript
复制
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函数中的代码需要一些解释:

代码语言:javascript
复制
   // 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;的行文可能不太清楚。这样读就更简单了:

代码语言:javascript
复制
int division1 = number % 10;
number += 1;

现在,对该函数的功能进行解释:

如果number = 142,我们将2放入变量division1中,然后将数字递增并除以10,因此数字得到了值14 ((142+1) / 10)。现在我们打印数字% 10 + division1,是4+2= 6。

下面是一些结果示例(我自己编写了代码):

代码语言:javascript
复制
3 => 3
9 => 10
10 => 1
248 => 12
票数 3
EN

Stack Overflow用户

发布于 2013-10-10 09:58:34

++a是一个预增量.这意味着在计算表达式之前将递增。

a++是一个后增量。这意味着在计算表达式后,a将增加。

初学者可能会感到困惑的一件事是,这个‘表达式’是什么?在这个‘表达式’之后,它实际上是;当您使用a++时,它是在";“之后;当增量实际发生时,当您使用++a时;就像您在这个语句之前插入一个语句,表示a=a+1,然后是您的表达式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19292479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档