private int[] myStuff;
/** Precondition: myStuff contains int values in no particular order.
/*/
public int mystery(int num)
{
for (int k = myStuff.length-1; k>=0; k--)
{
if (myStuff[k] < num)
{
return k;
}
}
return -1;
}
以下哪项最能描述 myStuff 之后的内容 以下语句已被执行?
int m = mystery(n);
答案:位置 m+1 到 myStuff.length-1 中的所有值都是 大于或等于n。
谁能解释一下为什么这个答案是正确的?我不确定它们的内容是什么意思,但是我得出的结论是 myStuff 没有改变,因为代码不会改变 myStuff 的值。
最佳答案
前提条件是,myStuff 包含不按特定顺序排列的整数值。 for 循环初始化为 k 等于 myStuff 的长度减一(因为数组索引从零开始),当 k 更大时进行迭代小于或等于 0,并在每次迭代中从 k 中减一。
如果你看一下if语句,当myStuff[k]<对应索引处的值时,它会返回k的当前值。/strong> 小于 n;因此,数组索引中大于返回值加一的所有值都必须大于或等于n。如果 myStuff 中没有数字整数大于 n,则返回减一。
我希望这会有所帮助。
顺便说一句 - 你是对的,mySyuff 的内容没有改变。
关于java - 计算机科学 : Java MC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15906887/