首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算机科学: Java MC

计算机科学: Java MC
EN

Stack Overflow用户
提问于 2013-04-10 00:01:42
回答 3查看 274关注 0票数 0
代码语言:javascript
复制
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内容?

代码语言:javascript
复制
int m = mystery(n); 

答:位置m+1到myStuff.length-1中的所有值都大于或等于n。

有人能解释为什么这个答案是正确的吗?我不确定他们所说的内容是什么意思,但我得出的结论是,因为代码不会改变myStuff的值,所以myStuff是不变的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-10 00:39:44

关于content的问题是有效的。这与内容本身是否发生了变化无关。

当存在这样的代码(从myStuff.length-10)且myStuff[k]小于n时,此方法返回一个非负数;或者当所有myStuff元素大于或等于<myStuff>d11时,此方法返回-1

让我们考虑一下这两种情况:

  • m是非负数-这意味着位置m是从右开始的最后一个满足条件myStaff[m] < n,您的答案是正确的
  • m是-1 -这意味着所有元素都大于<>d23>(在本例中是<>d24)-因此答案是正确的
票数 0
EN

Stack Overflow用户

发布于 2013-04-10 00:32:54

前提条件是,myStuff包含没有特定顺序的整数值。for循环被初始化为k等于myStuff减1的长度(因为数组索引从零开始),在k大于或等于零时迭代,并在每次迭代中从k减一。

如果查看 If 语句,它将返回k的当前值,此时myStuffk的相应索引处的值小于n;因此,数组索引中大于返回值加1的所有值必须大于或等于n。如果myStuff中没有大于n的整数,则返回负1。

我希望这能帮到你。

顺便说一句,你是对的,mySyuff的内容没有改变。

票数 1
EN

Stack Overflow用户

发布于 2013-04-10 00:32:57

你说的对,myStuff是不变的。但是,他们询问数组中的数据、函数的返回值和函数的参数之间的关系。

代码执行以下操作:

  • 以相反的顺序迭代数组。(for循环)
  • 在迭代期间,它根据n检查该索引的值,如果n较大,则返回当前索引。(if语句)

那么这个方法返回什么呢?它返回从末尾mystuff[m] < n开始的第一个索引。(mystuff[i] >= num)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15906887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档