【发布时间】:2013-09-19 15:20:28
【问题描述】:
所以我正在尝试更改最小和最大猜测的值(实际猜测由随机数生成器进行),以阻止程序猜测相同的数字两次。
我有一种方法可以进行猜测,但也尝试设置最低和最高猜测,然后在再次使用该方法时更改
public static int takestab (int low, int high) {
int estimate;
estimate = (low + (int)(Math.random() * ((high - low) + low)));
if (estimate < number) {
lowestguess = estimate;
}
else if (estimate > number) {
highestguess = estimate;
}
return estimate;
}
另外,这些是我在方法范围之外的变量:
int lowestguess = 1;
int highestguess = 100;
因此,通过运行该方法,猜测可能是 50,而实际数字可能是 60。如果是这种情况,那么“lowestguess”将变为 50,因此函数无法猜测低于 50。
当我这样尝试时,cmd提示说找不到匹配的符号。
有什么想法吗?
【问题讨论】:
-
其他变量在哪个范围内?要么将它们设为静态,要么将它们包装在您在方法中修改的 Class 实例中。
-
你不能在静态方法中使用实例变量。
-
尽管一些答案和 cmets 解决了可能的原因,但请包括您在尝试编译时遇到的错误。它可能比简单的“找不到匹配的符号”更具描述性。如果他们能解释消息如何表明问题,答案将更加有用。
-
——作用域在主类——明白了。从我的方法中删除了静态,现在它工作正常 - 抱歉,没有考虑那个。将来会这样做
标签: java variables methods scope