我有一个函数可以获得用户在游戏中拥有的货币数量,并将其作为int令牌返回。我无法弄清楚我应该如何做到这一点,因为变量不会从try块中出来。
try {
result = statement.executeQuery();
result.next();
int tokens = result.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}
int newToken = tokens + amnt;
答案 0 :(得分:4)
只需在try块之外定义标记:
int tokens = 0;
try {
result = statement.executeQuery();
result.next();
tokens = result.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}
int newToken = tokens + amnt;
答案 1 :(得分:0)
在try块之外声明标记,但将其分配到try块内。由于这是一个原语,因此您无需实例化变量。
答案 2 :(得分:0)
在try块
之前声明tokens
int tokens = 0;
try {
result = statement.executeQuery();
result.next();
tokens = result.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}
int newToken = tokens + amnt;
答案 3 :(得分:0)
你必须在try-block之外声明它并用某种默认值初始化它。
答案 4 :(得分:0)
只需在token
之外声明变量try
,写下类似
int tokens=0; //here
try {
result = statement.executeQuery();
result.next();
tokens = result.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}
int newToken = tokens + amnt;
答案 5 :(得分:0)
不,你根本就不能。可以将其视为函数中的局部变量。你能用另一个吗?
我该怎么做才能做到这一点
您应该在try-catch块之外声明它。
答案 6 :(得分:0)
例如:
int newToken = 0;
try {
result = statement.executeQuery();
result.next();
newToken = result.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}
newToken += amnt;
答案 7 :(得分:0)
正如安德鲁所说,在try块之外定义它将解决您的问题。这是因为变量范围仅限于try子句内,或者在大括号{ }
if-else子句,函数和类中定义的变量也是如此。