提问人:Noob 提问时间:11/17/2023 最后编辑:Mark RotteveelNoob 更新时间:11/18/2023 访问量:73
令人困惑的退货声明 [已关闭]
Confusing return statment [closed]
问:
尝试从方法传递到另一个方法,然后在打印之前对其进行求和。
该程序运行良好,但第 8 行让我感到困惑。我需要对此代码进行简要分析,这是我在遵循 IDE 的错误警告后获得的x
main
1 package tttt;
2
3 public class Class {
4
5 public static int test() {
6
7 int x = 1;
8 return test2(x);
9
10 }
11
12 public static int test2(int a) {
13 a += 2;
14 return a;
15
16 }
17 }
package tttt;
public class fff {
public static void main(String[] args) {
System.out.println(Class.test());
}
}
答:
0赞
knittl
11/17/2023
#1
return
返回表达式的结果。表达式可以是变量、文本或方法调用(或其中任何一个的组合)。
您的代码片段更短,但在其他方面 100% 相同:
public static int test() {
int x = 1;
int result = test2(x);
return result;
}
你甚至不需要这个变量,这个方法可以用一个语句来编写:x
public static int test() {
return test2(1);
}
请注意,这是一个非常糟糕的方法名称,因为它没有告诉你任何关于该方法的作用(而且该方法当然不会测试任何东西)。 或者会更好。test2
add2
addTwo
评论
0赞
Arfur Narf
11/17/2023
一个小问题:我认为如果你说“返回任何表达式的值”会更清楚。或“返回结果...”。
0赞
Vladislav Utkin
11/18/2023
#2
我在你的代码中留下了注释。
您可以返回有关数据结构(List、Queue、Map)或文本(如 )的链接。Numbers
1 package tttt;
2
3 public class Class {
4
5 // The main method named 'test'
6 public static int test() {
7
8 // Declare and initialize a variable 'x' with the value 1
9 int x = 1;
10
11 // Call the method 'test2' with the argument 'x' and return its result
12 return test2(x);
13
14 }
15
16 // Another method named 'test2' with an integer parameter 'a'
17 public static int test2(int a) {
18 // Increment the parameter 'a' by 2
19 a += 2;
20
21 // Return the modified value of 'a'
22 return a;
23
24 }
25 }
当您传递作为数组的变量的值时,会出现所有差异;变量的值成为对原始数组的引用。如果在另一个方法中将其修改为参数,则将更改原始数组。
class Main {
public static void main(String[] args) {
int[] d = Class.test();
for (int i : d){
System.out.println(i); /// 1, 2, 10
}
}
}
class Class {
public static int[] test() {
int[] x = {1, 2, 3};
test2(x);
return x;
}
public static void test2(int[] a) {
a[2] = 10;
}
}
评论
x=1
-->a=1
-->a=a+2
-->a=3
-->return a
-->return test2(x)
-->println(Class.test())