【问题标题】:Calculator doesn't execute the operations计算器不执行操作
【发布时间】:2017-06-06 00:13:59
【问题描述】:

我正在尝试在abap 中构建一个计算器。要求是:

  • 读取
    • 两个数字(例如 56.3 和 78.2)
    • 以下列表中的一个字符:q、w、e、r、t
  • 显示字符指定的操作结果
    • 字符 q 的添加
    • 字符 w 的减法
    • 字符 e 的乘法
    • 字符 r 的除法
    • 字符 t 的指数

我创建了一个表格,其中包含我在计算器中使用的操作。 问题是当我执行程序时它只打印我的最后一个选项(否则)“操作不可能”。

这是我写的代码:

REPORT Z_CALCULATOR_V2.

TABLES: ZOPERATII.
DATA result type p decimals 2.
DATA Q type c.
DATA W like Q.
DATA E like Q.
DATA R like Q.
DATA T like Q.

PARAMETERS Nr_1 type p decimals 2 OBLIGATORY.
PARAMETERS Nr_2 like Nr_1 OBLIGATORY.
PARAMETERS Operatie LIKE zoperatii-operatie OBLIGATORY.


if Operatie = Q.
  result = Nr_1 + Nr_2.


elseif Operatie = W.
    result = Nr_1 - Nr_2.

elseif Operatie = E.

elseif Operatie = R.
        result = Nr_1 / Nr_2.

elseif Operatie = T.
       result = Nr_1 ** Nr_2.

else.
  WRITE 'The operation is not possible'.
  endif.
  write result.

【问题讨论】:

  • 为什么你使用变量而不是像'q'或'w'这样的文字?声明时您的变量为空。这就是程序运行到 else 部分的原因。
  • 感谢您的回答......我不知道该回答什么,我在想文字 q 或 w 是变量......你是什么意思我的变量是空的?因为用户只会为他们提供值......或者我如何让它们不为空?
  • 嗯,它们不一样。文字描述为here 和变量here

标签: calculator abap


【解决方案1】:

如果您将数据声明更改为:

DATA Q type c value 'Q'.
DATA W type c value 'W'.
DATA E type c value 'E'.
DATA R type c value 'R'.
DATA T type c value 'T'.

代码应该按预期运行。也就是说,您应该按照 cmets 中的建议阅读文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2018-04-01
    • 2014-04-15
    相关资源
    最近更新 更多