什么回归&我做错了什么(Lua)

时间:2014-12-11 04:49:19

标签: lua

我有两个问题,一个是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

我试图做一些练习编码,但我对此感到难过。评论非常有帮助;)

1 个答案:

答案 0 :(得分:1)

return从函数返回一个值。

来自2.4.4 Control Structures

  

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}}和vgrade一起使用。

更简单的更改(如评论中添加的RetiredNinja)在比较中将testGrade[grade]替换为v