家庭作业分配,使用数组的Java方法

时间:2015-01-24 03:30:10

标签: java arrays

第一次在这里发帖,我有这个问题:

编写一个名为mostBowlsFull的静态方法,将其添加到Bowl类中,该类传递一个Bowl对象数组,如果数组中的绝对多数Bowls不为空,则返回true。因此,如果数组包含11个碗而6个不是空的,则您的方法应返回true,但如果数组包含12个碗且6个(或更少)不为空,则您的方法应返回false。

我们在这里上课:

https://cesd12.cs.umass.edu/owlj/servlet/ContentFileServer?ID=10778&ManuallyGraded=0&SecureID=2084635103&Server=owl-ijava31haverhillhs&TsActn=1422069785&datasrc=OwliJava31HaverhillHS&fileRequestID=4147

不确定它是否可访问,或者您是否必须登录该服务:/

无论如何,这是我的代码

`public static boolean mostBowlsFull(Bowl bowls[]){
  int count = 0;
  for(int j = 0; j < bowls[].length(), j++){
    if(bowls[j].getEmpty == true){
      count++;
    }
  }
  if(count > (bowls[].length()/2)){
    return true;
  }
}`

我正在寻求反馈:

系统检测到编译错误。这可能是由于: 分号丢失;在声明的最后。 未闭合的牙套{}。 未闭合的括号()。 未终止的字符串文字&#34;&#34;。 方法签名无效。 缺少退货声明。 Redeclared变量或数据成员。 等

有任何明显的错误吗?

编辑:好的,经过审核后我有

public static boolean mostBowlsFull(Bowl bowls[]){
  int count = 0;
  for(int j = 0; j < bowls.length; j++){
    if(bowls[j].getEmpty() == true){
      count++;
    }
  }
  if(count > (bowl.length/2)){
    return true;
  }
}

仍然收到相同的消息,虽然我明白了所指出的一切,谢谢。

3 个答案:

答案 0 :(得分:1)

使用IDE并解决编译错误会更容易,更少时间。 我在for循环中看到两个错误:

  for(int j = 0; j < bowls[].length(), j++){

使用逗号而不是分号。 for循环语法是

for (initialization; termination; increment) {
    statement(s)
}

length也是数组的属性,而不是方法。因此,请使用bowls.length代替bowls[].length。使用[]时,并不是说您不需要length

答案 1 :(得分:1)

如果您尝试获取bowls的长度,请使用bowls.length,而不是bowls[].length()

此外,在for循环中,您需要在所有三个语句之间使用分号:

for(int j = 0; j < bowls.length; j++){ ... }

答案 2 :(得分:0)

public static boolean mostBowlsFull(Bowl bowls[]){
      int count = 0;
      boolean ret=false;
      for(int j = 0; j < bowls.length; j++){
        if(bowls[j].getEmpty() == false){
          count++;
        }
      }
      if(count > (bowls.length/2)){
        ret=true;
      }
      return ret;
    }