【问题标题】:i=i+1 in compiled languages?i=i+1 在编译语言中?
【发布时间】:2015-09-13 21:01:13
【问题描述】:

我正在使用 TI-BASIC(BASIC 的优化版本)为我的 TI-nspire 计算器编写程序。据我所知,TI-BASIC 是一种编译语言。我有更多使用脚本语言的经验,您可以将 i 定义为 i+1,其中解释器将 i 的先前值添加到 1 并使其成为 i 的新值。但是根据我的理解,由于 BASIC 是编译的,计算器会将 i 的值设置为 i+1 的 方程 并循环。有没有办法将 i 的值设置为结果而不是方程?

【问题讨论】:

  • 您能否发布您的代码、预期结果是什么以及实际结果是什么?
  • 如果你的计算器有一个编译器而不是一个相当轻量级的解释器,我会感到非常惊讶。
  • 你不在那些计算器上使用“存储”语法吗? i+1 → i?另请查看此页面:tibasicdev.wikidot.com/nspire
  • i + 1 是一个表达式,而不是一个等式。一个等式意味着您正在查看一些 equal (等于)其他东西。并且使用编译语言和解释语言对于语言的赋值是分配表达式还是表达式的结果有的影响。
  • @LasseV.Karlsen 这适用于 z80 和 68k 系列计算器; Nspire 不同。

标签: ti-basic compiled interpreted-language


【解决方案1】:

你错了,在为同一个变量赋值时引用一个变量是完全可以的,它不会导致循环。但是,在 TI-Basic 中,您不使用 = 运算符为变量赋值。

对于 z80 和 68k 计算器,请使用 ,字符如下:

Local x

2→x
x+1→x

Return x

这将返回 3。 (在 TI-89 上测试。)

在 TI-nspire 上使用 :=,如下所示:

Local x

x:=2
x:=x+1

Return x

这也返回3

【讨论】:

    【解决方案2】:

    你的理解是错误的。编译不会改变赋值的语义。它仍然是一个任务。

    然后,编译器会使用什么数字作为 i = i + 1 的解?

    【讨论】:

      猜你喜欢
      • 2016-02-20
      • 2022-01-10
      • 1970-01-01
      • 2019-07-21
      • 2020-05-24
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      相关资源
      最近更新 更多