Lua中的递增

我正在玩一下 Lua。

我遇到了下面这段代码,它有一个意外的行为:

a = 3;
b = 5;
c = a-- * b++; // some computation
print(a, b, c);

Lua运行程序时没有任何错误,但是没有像预期的那样打印出2 6 15。为什么?

点赞
用户1159604
用户1159604

LUA不使用++--进行自增和自减操作。相反,--将用于注释。

2012-12-18 22:47:15
用户995876
用户995876

-- 在 Lua 中表示单行注释,类似于其他语言中的 #//

因此,它等价于:

a = 3;
b = 5;
c = a
2012-12-18 22:56:12
用户8076767
用户8076767

这会得到

3 5 3

因为第3行将被解释为c = a

为什么?因为在Lua中,注释以--开头。因此,c = a-- * b++; // some computation被分为两部分:

1.表达式:c = a 2.注释:* b++; //// some computation

2015-03-26 16:44:04
用户88888888
用户88888888

如果您想将 2 6 15 作为输出结果,请尝试以下代码:

a = 3
b = 5
c = a * b
a = a - 1
b = b + 1
print(a, b, c)
2016-08-10 23:49:27
用户9558467
用户9558467

在 Lua 中没有 --++,所以你必须使用 a = a + 1a = a -1 或类似的语法。

2018-03-29 05:41:35
用户13532406
用户13532406

编辑: 在C#中使用SharpLua,可以按下面的方式使用缩写来对lua进行递增/递减:

a+=1 //增加某个值
a-=1 //减去某个值

此外,可以按以下方式进行乘法/除法操作:

a*=2 //乘以某个值
a/=2 //除以某个值

如果将一个变量加、减、乘或除另一个变量,也可以使用同样的方法,如下所示:

a+=b
a-=b
a/=b
a*=b

这样做更简单、更整洁,我认为不会太复杂,但不是每个人都会分享我的观点。

希望能对你有所帮助!

2020-05-30 06:54:21
用户14936536
用户14936536

你可以这样做:

本地默认值=0 
本地最大值=100 

当默认值小于最大值时:
     默认值=默认值+1
     打印(默认值)
结束 
2021-01-10 00:49:27
用户13646422
用户13646422

您的 Lua 代码存在两个问题:

a = 3;
b = 5;
c = a-- * b++; // 一些计算
print(a, b, c);

第一,Lua 目前不支持自增运算。解决办法是:

c = a - 1 * b + 1
print(a, b, c)

第二,Lua 中的 -- 是注释符号,所以使用 a-- 将会被翻译为 a,而 * b++; // 一些计算 将成为注释。

第三,Lua 不支持 // 用于注释,可以使用 -- 代替。

此外,在每行代码末尾加 ; 是可选的。

2021-08-24 18:21:35