【发布时间】:2018-01-01 16:17:43
【问题描述】:
我感觉不知何故我不明白使用“返回”值的意义,所以我会给你两个例子,也许有人会为我澄清这一点。 这种方法有什么区别:
int giveSecret(){
return 42;
}
//code in between
int theSecret = life.giveSecret();
System.out.println(theSecret);
(我预期的控制台输出): 42
还有这个方法:
void giveSecret(){
//code that "resets" variable to value 42
}
//code in between
int theSecret = life.giveSecret();
System.out.println(theSecret);
(我预期的控制台输出): 42
【问题讨论】:
-
第二个 sn-p 没有通过编译,因为
life.giveSecret()什么都不返回。 -
为什么总有一个变量可以用
giveSecret这样的方法来操作? -
你应该先试试这个。你会看到 int theSecret = life.giveSecret() 不会编译,因为 int != void。
-
//code that "resets" variable to value 42...什么变量?正如所指出的,如果你有void giveSecret(),然后尝试int theSecret = life.giveSecret();,那么这是一个错误,因为giveSecret()return 被声明为void,但你试图分配它,就好像它有一个int返回值一样。您需要一个return语句(其参数的类型与您声明的返回值相匹配)来告诉解释器/编译器将一个值返回给调用者。没有它,什么都不会返回。问题,是复杂还是?非常不清楚。 -
请记住,返回值不仅仅是返回预定义的常量。通常,返回的值是针对给定函数的特定输入计算的。函数代表数据的转换或使用;
return返回结果数据。您过于简化的示例没有抓住重点。