我有两个问题,一个是lua的回报?我一直在互联网上寻找它的作用/意义和它的purpouse。 2.我在编写本节时遇到问题:
testGrade={}
testGrade.Joe = 86
testGrade.Josh = 75
testGrade.Jack = 12
testGrade.Andrew = 0
testGrade.Larry = 100
testGrade.Noah = 94
testGrade.Blakely = 67
for k,v in pairs(testGrade) do
local maxGrade = 100
if testGrade[grade] == 100 then
Msg("Congratulations "..k..", you scored a "..v.." out of "..maxGrade.." getting every question right!\n");
elseif testGrade[grade] >= 90 then
Msg("Congratulations "..k..", you scored a "..v.." out of "..maxGrade.." getting an A!\n");
elseif testGrade[grade] >= 80 then
Msg(k..", you scored a "..v.." out of "..maxGrade.." getting a B.\n");
elseif testGrade[grade] >= 70 then
Msg(k..", you scored a "..v.." out of "..maxGrade.." getting a C, try harder next time.\n");
elseif testGrade[grade] >= 60 then
Msg(k..", you scored a "..v.." out of "..maxGrade.." getting a D, you need to study!\n");
elseif testGrade[grade] == 0 then
Msg(k..", you scored a "..v.." out of "..maxGrade.." getting NOTHING right! Did you even try?!\n");
else
Msg(k..", you scored a "..v.." out of "..maxGrade.." making you fail. You need to try harder and study!\n");
end
end
我试图做一些练习编码,但我对此感到难过。评论非常有帮助;)
答案 0 :(得分:1)
return
从函数返回一个值。
return语句用于从函数或块(它只是一个函数)返回值。函数和块可以返回多个值.return语句用于从函数或块(它只是一个函数)返回值。函数和块可以返回多个值,因此return语句的语法是
stat :: = return [explist]
此处没有此功能,因此您无需在任何地方return
。
您正在尝试使用testGrade[grade]
来获取当前学生的成绩,但grade
没有任何价值(您从未将其分配到任何地方)。
循环中k
的值是表格中的关键字(学生的姓名)。
循环中v
的值是表格中键的值(学生的成绩)。
因此,将for k,v in pairs(testGrade) do
更改为for student, grade in pairs(testGrade) do
,并将比较中的所有testGrade[grade]
替换为grade
,并且应该可以使用k
替换student
的所有用途{1}}和v
与grade
一起使用。
更简单的更改(如评论中添加的RetiredNinja)在比较中将testGrade[grade]
替换为v
。