2013-04-22 61 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