|
1
45
虽然不可能编写一个简单地交换两个变量的函数,但可以编写一个 辅助功能 这使您能够:
你可以这样做:
这之所以有效,是因为Java语言保证(Java语言规范,Java SE 7 Edition,第15.12.4.2节)所有参数都是从左到右计算的(与某些其他语言不同,其中计算顺序未定义),因此执行顺序为:
假设你需要一个接一个地交换许多不同类型的变量。通过使用returnFirst,不需要intAux、objAux等。在某处错误使用错误变量的风险较小,因为没有额外的变量(至少在调用者中)。 |
|
|
2
48
不使用数组或对象,不,不可能在方法中完成。 |
|
|
3
18
看看这篇JavaWorld文章,它详细解释了这一点: http://www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.html 两个原语的交换永远不会起作用,因为原语在Java中是按值传递的。你甚至不能写一个方法来交换两个对象。 正如@Thomas所说,你唯一能做的就是将你的原语包含在其他对象/数组中,并对其进行修改。 |
|
|
4
5
任何原始数都有一行:
|
|
|
5
3
您可以创建@marcus的swap方法的通用版本,该方法可以交换任意数量的相同类型的对象:
|
|
|
6
2
|
|
|
7
2
要编写一个交换原语的交换方法,你必须有“out”变量的概念,即其值传递给调用上下文的变量。C#有这些,但你仍然必须指定它们是输出变量。 |
|
|
8
1
此函数将交换两个整数
|
|
|
9
1
这是一个交换两个原始变量的方法
不过,这可能没什么用;)
不过,我还是看不出这有什么用 |
|
|
10
1
我已经阅读了上述答案,试图解释为什么有人说交换程序不能像用c++编写的那样用java编写。 我按照以下方式做了 program screenshot |
|
|
11
0
正如托马斯·欧文斯所说。你可能可以在C中通过将变量传递给&引用,但恐怕在Java中不使用对象是不行的。 |
|
|
12
-1
是的,可以使用方法交换两个变量。 但是,您应该用空括号声明该方法,然后通过以下方式调用它 . 下面是一个使用方法交换两个变量的示例。 公共类交换 {
} 通过编译上述代码,输出如下: 交换之前 A=苹果 B=蝙蝠 交换后 A=蝙蝠 B=苹果 //在通过引用调用的情况下,如果我们对被调用的方法进行了更改,则原始值会发生变化 |
|
13
-4
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |