2015-10-09 237 views
0

我在這裏有兩個問題。首先,我想要x將值更改爲x - y,如果新的x高於0,我希望該過程重複。我已經制定了下面的代碼,但我沒有證明兩件事情。整數減法和基於整數值的循環

  1. 上午我甚至允許使方程x = X - y或做這個爛攤子了一切?我的意思是用數學術語來說這是不可能的,但是如果我們把X當作Hp和Y作爲傷害,我希望傷害加起來。我不希望它爲每次減法創建一個「損傷HP」整數,因爲我甚至不知道如果將Y設置爲隨機的,我將不得不創建多少個「Z = x-y」樣式方程。 我的猜測是,我可以創建爲Z積分,將複製X片刻前的減除會熄滅,然後有減法是X = Z - 年,但我不知道我怎麼會去編寫此。

  2. 我希望它繼續和循環本身如果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 

回答

1

我很喜歡這個問題。這是我的想法:

  1. 是的,x = x - y是完全有效的代碼。這與我有一個名爲myRunOnSentence的字符串變量沒有什麼不同,我想將已存在於變量中的字符串與另一個字符串連接起來,然後將結果存儲回字符串變量中。像這樣:myRunOnSentence = myRunOnSentence + "another string"相同的概念,只需將數據類型更改爲Integer即可。 x = x + y。以編程方式說:「將x中的值和y中的值相加,將它們加在一起,並將該表達式的結果存儲在x中。」

  2. 你確實使與循環是錯誤的。你在循環體內沒有任何代碼。

  3. 你有什麼發生在Main()子你的模塊,這樣在運行時會做什麼這個模塊。您只需從Maths()方法中取出代碼並將其放入Main()子文件。

  4. 在你Subtraction()方法,A > B將始終評估爲True因爲AB與值初始化,然後從未改變。

您的代碼應該是這個樣子:

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 

如果這回答了你的問題,請不要忘記將其標記爲答案。

+1

謝謝您的幫助:) 我已經完全錯過了事實,我沒放任何東西在main(在我的防守是凌晨1點)。我知道,一個總是會更大然後是B,因爲這僅僅是一個另一個項目中,我使用RNG來確定A和B謝謝你清理東西^^ –

+0

沒問題的小樣,很高興我能幫忙。 –