2017-06-06 33 views
0

私はabapで電卓を作ろうとしています。要件は:Q、E、R、T ABAPで電卓を作成すると操作が実行されません

  • 、W:

      • 二つの数字(例:56.3及び78.2)
      • 以下のリストから文字を読み取り文字で指定された操作の結果を表示する
        • 文字の追加q
        • 私は私が使用しています操作で表を作成した文字トン

      の文字eの乗算

    • ワットの文字のための
    • 減算
    • 文字R本部
    • 指数電卓。 問題は、プログラムを実行するときに最後のオプションを印刷するだけです(else)。「操作できません」。あなたが期待するようなコードを実行する必要があります

      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'. 
      

      :あなたがデータ宣言を変更した場合

      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. 
      
  • +1

    なぜ 'q'や 'w'のようなリテラルの代わりに変数を使用しますか?変数は宣言時に空です。そういうわけで、プログラムはelseセクションに入ります。 – szako

    +0

    あなたの答えをありがとう....私は何を答えるか分からない、私はリテラルqまたはwを考えていた変数...あなたは私の変数が空であることを意味しますか?ユーザーがそれらの値を提供するだけなので...またはそれらを空ではないようにするにはどうすればよいですか? –

    +0

    さて、彼らは同じではありません。リテラルは、[ここ](https://help.sap.com/http.svc/rc/abapdocu_751_index_htm/7.51/en-US/abenliteral.htm)および変数[here](https://help.sap.com)に記載されています。 /http.svc/rc/abapdocu_751_index_htm/7.51/en-US/abapdata.htm)。 – szako

    答えて

    1

    ここで私が書いたコードです。つまり、コメントに示唆されているようにドキュメンテーションを読むべきです。

    関連する問題