我环顾四周,我知道这意味着中断是无法到达的,但我不明白它为什么是无法到达的,或者它试图到达的是什么。我收到错误的代码如下所示,也许有人可以告诉我应该添加什么来使中断可达:
#region :buy <item>
case "buy":
string Item = stringManager.wrapParameters(args, 1);
if (Item == "bread")
{
int foodfunds;
int myfood;
int foodCheck;
int creditCheck;
using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
foodfunds = dbClient.getInt("SELECT credits FROM users WHERE name = '" + _Username + "'");
using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
myfood = dbClient.getInt("SELECT food FROM users WHERE name = '" + _Username + "'");
if (foodfunds < 10)
{
Room.sendData("BK" + "Not enough cash.");
}
if (_roomID != 193)
{
sendData("BK" + "You must be in the supermarket to buy bread");
}
else
{
using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
dbClient.runQuery("UPDATE users SET food = food + 1 WHERE name = '" + _Username + "'");
using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
foodCheck = dbClient.getInt("SELECT food FROM users WHERE name = '" + _Username + "'");
using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
dbClient.runQuery("UPDATE users SET credits = credits - 10 WHERE name = '" + _Username + "'");
using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
creditCheck = dbClient.getInt("SELECT credits FROM users WHERE name = '" + _Username + "'");
Room.sendShout(roomUser, "*Buys a loaf of bread and stashes in bag*");
Room.sendSaying(roomUser, "(Now have: " + foodCheck + " loaves of bread)");
Room.sendSaying(roomUser, "(Now have: " + creditCheck + " credits left)");
}
if (myfood > 255)
{
Room.sendData("BK" + "You cannot carry anymore food!");
}
break;
}
#endregion发布于 2013-02-25 11:42:57
该错误意味着在某些情况下break;不会被命中。
具体地说,if (Item == "bread")不是真的。
发布于 2013-02-25 11:44:09
将break移到最后一个}之外。使用您的代码,如果项目不是“面包”,则不会到达break。
https://stackoverflow.com/questions/15059719
复制相似问题