Random 函数NameGen():尝试将nil与number进行比较
我得到的错误是Random 函数NameGen():尝试将nil与number进行比较,random,lua,Random,Lua,我得到的错误是 [string "function NameGen()..."]:14: attempt to compare nil with number stack traceback: [string "function NameGen()..."]:14: in function 'NameGen' [string "function NameGen()..."]:23: in main chunk [C]: ? 我的代码: function NameGen(
[string "function NameGen()..."]:14: attempt to compare nil with number
stack traceback:
[string "function NameGen()..."]:14: in function 'NameGen'
[string "function NameGen()..."]:23: in main chunk
[C]: ?
我的代码:
function NameGen()
preftest = math.random(100) ;
syltest = math.random(100) ;
sufftest = math.random(100) ;
pref1 = "New ";
_1syl1 = "Lon";
_2syl1 = "Don";
suff1 = " City";
prefchoice = pref1;
_1sylchoice = _1syl1;
_2sylchoice = _2syl;
suffchoice = suff1;
if preftest < 50 and _2syltest < 50 and sufftest < 50 then
cityname = prefchoice .. _1sylchoice .. _2sylchoice .. suffchoice;
elseif preftest < 50 and _2syltest < 50 then
cityname = prefchoice .. _1sylchoice .. _2sylchoice;
else
cityname = _1sylchoice;
end
end
NameGen();
print(cityname);
函数名gen()
预测试=数学随机(100);
syltest=数学随机(100);
测试=数学随机(100);
pref1=“新建”;
_1syl1=“Lon”;
_2syl1=“Don”;
suff1=“城市”;
prefchoice=pref1;
_1sylchoice=_1syl1;
_2sylchoice=2syl;
suffchoice=suff1;
如果预测试<50且 2syltest<50且sufftest<50,则
cityname=prefchoice_1.选择_2.选择。。选择权;
如果预试验<50,则试验<50
cityname=prefchoice_1.选择_2.选择;
其他的
cityname=_1sylchoice;
结束
结束
NameGen();
印刷品(城市名称);
我不知道在哪里分配了\u 2syltest
——只有syltest
。如果\u 2syltest
不是来自其他地方,这可能是问题所在,因为这是If中使用该值的条件。从代码的结构来看,您似乎希望在If
和elseif
条件中同时使用syltest<50
,而不是使用\u 2sylthoice<50
。此外,您的意思可能是\u 2sylchoice=\u 2syl1
(这里的输入错误?)
看看这是不是你的意思:
function NameGen()
preftest = math.random(100)
syltest = math.random(100)
sufftest = math.random(100)
pref1 = "New "
_1syl1 = "Lon"
_2syl1 = "Don";
suff1 = " City"
prefchoice = pref1
_1sylchoice = _1syl1
_2sylchoice = _2syl1
suffchoice = suff1
if preftest < 50 and syltest < 50 and sufftest < 50 then
cityname = prefchoice .. _1sylchoice .. _2sylchoice .. suffchoice
elseif preftest < 50 and syltest < 50 then
cityname = prefchoice .. _1sylchoice .. _2sylchoice
else
cityname = _1sylchoice
end
end
for i = 1, 100 do
NameGen()
print(cityname)
end
函数名gen()
预测试=数学随机(100)
syltest=数学随机(100)
测试=数学随机(100)
pref1=“新建”
_1syl1=“Lon”
_2syl1=“Don”;
suff1=“城市”
prefchoice=pref1
_1sylchoice=\u 1syl1
_2sylchoice=_2syl1
suffchoice=suff1
如果预测试<50,syltest<50,sufftest<50,则
cityname=prefchoice_1.选择_2.选择。。选择权
elseif preftest<50,syltest<50则
cityname=prefchoice_1.选择_2sylchoice
其他的
cityname=\u 1sylchoice
结束
结束
当i=1100时,do
NameGen()
打印(城市名称)
结束
另一方面,您使用的全局变量太多了。您使用的所有变量都应该是本地变量,除非您有强烈的理由这样做(虽然我没有更改代码的这一方面,以免在您不知道我在说什么的情况下混淆您)。请修复您的缩进快速提示,您不需要所有这些分号。这不是C。
如果你需要睡眠,那么sleep()end
bugs=不睡眠和更多或更少的bugs
(作为电视广告主),请不要在睡眠剥夺的影响下驱动或操作堆栈溢出。因此,这就是睡眠。谢谢!