如何实现think函数交替返回1与2?编程新手求助
解决交替返回1和2的问题
嘿,我来帮你搞定这个交替返回的需求!首先得指出你当前代码里的核心问题:i和z都是局部变量,每次调用think()函数时,它们都会被重新初始化回1,所以不管调用多少次,函数永远只会返回1。要实现交替返回的逻辑,我们需要一个能在多次函数调用之间保存状态的变量——也就是类的成员变量(实例变量)。
下面是修改后的完整代码示例:
public class YourClassName { // 把状态变量定义为成员变量,它的值会在多次函数调用之间保留 private int currentValue = 1; public int think() { // 先保存当前要返回的值 int result = currentValue; // 切换状态:当前是1就改成2,当前是2就改成1 currentValue = (currentValue == 1) ? 2 : 1; return result; } }
代码逻辑拆解:
currentValue作为类的成员变量,会在你创建这个类的实例后一直存在,每次调用think()时都会复用它当前的数值,不会像局部变量那样每次都重置。- 第一次调用
think():currentValue初始是1,返回1后切换为2; - 第二次调用:返回2后切换为1;
- 以此类推,完美实现你要的1-2-1-2交替返回效果。
如果你觉得三元运算符不够直观,也可以用if-else写法:
public int think() { int result = currentValue; if (currentValue == 1) { currentValue = 2; } else { currentValue = 1; } return result; }
这样修改后,每次调用think()就会按照你想要的顺序返回数值啦!
内容的提问来源于stack exchange,提问作者lorenzo
相关产品推荐
相关产品推荐

