Menu
CoddyTech

复习:简单计算器

本课属于 Coddy GDScript 学习旅程的“面向对象编程”单元。第 8 课,共 65 课。

challenge icon

挑战

中等

在 calculator.gd 中编写 Calculator 类。它会在 float 属性 result 中保存不断更新的结果,初始值为 0.0。

  • add(number)、subtract(number)、multiply(number) 和 divide(number) 使用 number 对 result 执行相应运算,保存新结果并返回它
  • 当 divide() 收到 0 时,它会打印 Error: Division by zero,保持 result 不变并返回它
  • clear() 将 result 重新设为 0.0 并返回它
  • get_result() 返回 result

提供的代码会读取后续命令的数量,然后逐行读取命令,例如 add 5、divide 0 或 clear。每执行一条命令后,它都会打印命令名称和方法返回的值,并在最后打印最终结果。对于 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 在线编译器