我在这里遇到两个问题。首先,我想要x将值更改为x - y,如果新X高于0,我希望该过程重复。我已经制定了下面的代码,但我并不认可两件事。
我是否允许制作等式x = x-y或者这会弄乱一切?我的意思是在数学术语中它是不可能的,但如果我们把X作为Hp和Y作为伤害我想要将伤害加起来。我不希望它造成损害HP&#34;每个减法的整数,因为我甚至不知道有多少&#34; Z = x-y&#34;如果我将Y设置为随机,我将不得不创建样式方程式。 我的猜测是我可以创建一个Z积分,它会在减法结束之前复制X,然后减法为X = Z - Y但是我不确定如何对此进行编码。< / p>
如果X高于0,我希望它继续循环并且我不确定我是否正确编码。
这是我的代码:
Module Module1
Dim A As Integer
Dim B As Integer
Dim x As Integer
Dim y As Integer
Sub Main()
End Sub
Sub Maths()
A = 5
B = 4
x = 3
y = 1
Subtraction()
Console.WriteLine("You deal {0} damage to your enemy reducing it to {1} hp.", y, x)
Do Until x <= 0
Loop
End Sub
Private Sub Subtraction()
If A > B Then x = x -y
Return
End Sub
End Module
答案 0 :(得分:1)
我喜欢这个问题。这是我的想法:
是的,x = x - y
是完全有效的代码。它没有什么不同,如果我有一个名为myRunOnSentence
的字符串变量,我想连接已经在变量中的字符串和另一个字符串,然后将结果存储回字符串变量中。像这样:myRunOnSentence = myRunOnSentence + "another string"
相同的概念,只需将数据类型更改为Integer。 x = x + y
。以编程方式说:&#34;取x中的值和y中的值,将它们加在一起,并将该表达式的结果存储在x中。&#34;
你确实犯了循环错误。你在循环体内没有任何代码。
您的模块的Main()
子项中没有任何内容,因此运行此模块时不会执行任何操作。您应该从Maths()
方法中获取代码并将其放入Main()
子代码中。
在Subtraction()
方法中,A > B
将始终评估为True
,因为A
和B
已使用值初始化,然后永不更改。
您的代码应如下所示:
Module Module1
Dim A As Integer = 5
Dim B As Integer = 4
Dim x As Integer = 3
Dim y As Integer = 1
Sub Main()
Do Until x <= 0
Subtraction()
Console.WriteLine("You deal {0} damage to your enemy reducing it to {1} hp.", y, x)
Loop
End Sub
Private Sub Subtraction()
If A > B Then x = x - y 'Return statement wasn't needed.
End Sub
End Module
如果这回答了您的问题,请不要忘记将其标记为答案。