復習 - シンプルな電卓
CoddyのGDScriptジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 8/65。
チャレンジ
中級calculator.gdにクラスCalculatorを記述してください。float型のプロパティresultに計算結果を保持し、初期値は0.0です。
add(number)、subtract(number)、multiply(number)、divide(number)は、resultにnumberを使って演算を行い、新しい結果を保存して返しますdivide()に0が渡された場合、Error: Division by zeroを出力し、resultを変更せずに返しますclear()はresultを0.0に戻して返しますget_result()はresultを返します
用意されているコードは、後続するコマンドの数を読み取ってから、add 5、divide 0、clearのようなコマンドを1行ずつ読み取ります。各コマンドの後に、コマンド名とメソッドが返した値を出力し、最後に最終結果を出力します。add 5、multiply 3、subtract 2、divide 0、divide 2の場合、次のように出力されます。
add -> 5.0
multiply -> 15.0
subtract -> 13.0
Error: Division by zero
divide -> 13.0
divide -> 6.5
Final result: 6.5コードはcalculator.gdに記述してください。main.gdには用意されている入出力コードが含まれており、編集できません。
自分で試してみよう
extends Node
func _ready():
# 提供された入出力コード:そのままにしてください
var calc := Calculator.new()
var count := int(OS.read_string_from_stdin())
for i in count:
var parts := OS.read_string_from_stdin().split(" ")
var value := 0.0
match parts[0]:
"add":
value = calc.add(float(parts[1]))
"subtract":
value = calc.subtract(float(parts[1]))
"multiply":
value = calc.multiply(float(parts[1]))
"divide":
value = calc.divide(float(parts[1]))
"clear":
value = calc.clear()
print("%s -> %s" % [parts[0], value])
print("Final result: %s" % calc.get_result())
オブジェクト指向プログラミングのすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ