public int pray(int secondsPrayed){
int randomRecoveryValue = secondsPrayed + new Random().nextInt(3);
int actuallyRecoveredValue = Math.min(this.MAX_MP -this.mp,randomRecoveryValue);
this.mp += actuallyRecoveredValue;
return actuallyRecoveredValue;
}
这是我目前用来学习的一本书。目标是为pray
对象创建Priest
方法,该方法通过祈祷的秒数和随机的0到2来恢复其MP。我不太了解两件事:
3 nextInt
之后而不是2(本书的答案) - 当我们试图随机获得0到2时,为什么会这样?
actuallyRecoveredValue
将其值返回secondsPrayed
;但是,对我而言,首先我们需要actuallyRecoveredValue
RandomRecoveryValue
secondsPrayed
,而T1.CompareColumn <> T2.CompareColumn
又需要Cats
,而此时似乎不存在?我是Java的新手,所以我没有太多返回值的经验。
答案 0 :(得分:2)
public class FileUploadController : Controller
{
private List<string> UploadedFileNames = new List<string>();
public List<string> AddFileNameToList(string fileName)
{
UploadedFileNames.Add(fileName);
return UploadedFileNames;
}
public JsonResult UploadFile(string fileName)
{
//save file to directory etc
AddFileNameToList(fileName);
return Json(new {});//relevant info for the user
}
}
返回一个伪随机数,在0之间均匀分布的int值 (包括)和指定值(不包括),由此得出 随机数发生器的序列。
您将UploadedFileNames
作为变量传递给方法,因此它确实存在于方法(scope)中。从您发布的代码中,我们无法判断nextInt(int n)
是否属实。
对我来说,看起来像第一个得到actualRecoveredValue 我们需要RandomRecoveryValue,而这又需要secondsPrayed
这是真的,但如上所述,secondsPrayed
确实存在
答案 1 :(得分:0)
1)nextInt()方法返回一个介于零和您使用的参数之间的整数值(在您的情况下为3)。虽然范围中包含零,但范围的最后一个元素不是。
你可以认为nextInt(n)返回n个可能的值,意味着&#34; 0&#34;之间的范围。和&#34; n-1&#34;
nextInt(5) // can return 0,1,2,3,4
2)代码有点乱,我会告诉你,正如你所说的那样,你必须确定&#34; randomRecoveryValue&#34;的价值。为了确定actualRecoveredValue。方法pray()做了三件事:
干杯