好吧...没人笑...我正在麻省理工学院/Google Appinventor 开发一个应用程序。这是一个纲要:
- 扫描条码然后运行图示功能。
如果该项目在列表中,则在库存列表中查找该项目的位置索引。使用该项目索引,将数量列表中的值增加 1。
如果该项目不在列表中,则将该项目添加到库存中,并在数量上添加“1”。
我不明白为什么它不起作用,所以我只是检查一下我的逻辑是否有任何明显的缺陷。如果逻辑看起来很可靠,那么我应该能够找出 Appinventor 问题以使其工作。
好吧...没人笑...我正在麻省理工学院/Google Appinventor 开发一个应用程序。这是一个纲要:
如果该项目在列表中,则在库存列表中查找该项目的位置索引。使用该项目索引,将数量列表中的值增加 1。
如果该项目不在列表中,则将该项目添加到库存中,并在数量上添加“1”。
我不明白为什么它不起作用,所以我只是检查一下我的逻辑是否有任何明显的缺陷。如果逻辑看起来很可靠,那么我应该能够找出 Appinventor 问题以使其工作。
这是您将函数翻译(准确吗?)为伪代码,以帮助我自己的理解(希望其他人的理解):
function addItem:
if inventoryList.contains(scannerResult):
inventoryPosition = inventoryList.positionOf(scannerResult)
quantityPosition = quantityList.positionOf(scannerResult)
quantityItem = quantityList.selectListItemAt(quantityPosition)
quantityList.insert(quantityItem at inventoryPosition)
else
inventoryList.add(scannerResult)
quantityList.add(1)
当扫描仪结果已经在列表中时,问题似乎出在逻辑上。我不知道相关的 app-inventor 功能,但我认为您想要更多类似的东西:
if inventoryList.contains(scannerResult):
inventoryPosition = inventoryList.positionOf(scannerResult)
quantity = quantityList.selectListItemAt(inventoryPosition)
quantityList.setListItemAt(quantityPosition to quantity + 1)
最后一行是我不知道如何翻译成应用发明者语言的部分,但希望它足以为您指明正确的方向。
@blahdiblah对问题进行了很好的分析。
App Inventor 的解决方案如下所示:您必须使用替换列表项
块而不是插入列表项块