2013-04-22 36 views
-1

問題出現在第3行,我需要拿走1-3之間的一個數字並保存值,以便將更多的數據帶走。如何從int中除去值? C#

Random randomhit = new Random(); 
int randomNumberhit = randomhit.Next(1, 4); 
int life = life - randomNumberhit; 
Console.WriteLine(life); 

任何想法?我完全錯了嗎?

+7

問題是什麼? – Kenneth 2013-04-22 21:17:48

+0

假設你的'randomNumberhit'是5,打印的是什麼'life'? – 2013-04-22 21:18:06

+0

這是什麼問題?你是否收到錯誤信息? – McCee 2013-04-22 21:18:12

回答

0

您正在做life-randomNumberhit,但在那時您的變量life尚不存在。你應該初始化變量life你想要的任何值:

Random randomhit = new Random(); 
int randomNumberhit = randomhit.Next(1, 4); 
int life = 0; // for instance, 0 
Console.WriteLine(life - randomNumberhit); 
+2

這並不拯救新的生命價值回到生活變量。 – Cemafor 2013-04-22 21:20:16

2

生活需要被initalized的東西

int life = 100; //Or some other value 
Random randomhit = new Random(); 
int randomNumberhit = randomhit.Next(1, 4); 
life = life - randomNumberhit; 
Console.WriteLine(life); 

還要注意的是,當生活被重新分配不需要(life = life - randomNumberhit;)整型。

4

您聲明變量life併爲其指定值life - randomhit。如果life還沒有價值,你怎麼能知道計算結果?

嘗試這樣:

int life = 100; 
... 
Random randomhit = new Random(); 
int randomNumberhit = randomhit.Next(1, 4); 
life = life - randomNumberhit; 
Console.WriteLine(life); 

但是,您可能希望life類變量來代替。像這樣的東西可以工作:

public class MyGuy 
{ 

    public int Life { get; set; } 

    public MyGuy() 
    { 
     this.Life = 100; // starting life 
    } 

    public void Hit() 
    { 
     Random randomhit = new Random(); 
     int randomNumberhit = randomhit.Next(1, 4); 
     this.Life -= randomNumberhit; 
     Console.WriteLine(this.Life); 
    } 
} 
+0

工作出色,謝謝。 – 2013-04-22 21:22:15

+0

@LinkMartin如果它適合您,請選擇接受的答案。這目前看起來像一個沒有答案的問題。 – lal 2016-05-07 08:07:57