课外天地 李树青学习天地清心茶舍 → [求助]请问老师这该怎么改?


  共有20494人关注过本帖树形打印复制链接

主题:[求助]请问老师这该怎么改?

帅哥哟,离线,有人找我吗?
friday
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:5 积分:447 威望:0 精华:0 注册:2006/9/14 11:00:35
[求助]请问老师这该怎么改?  发帖心情 Post By:2007/4/1 19:44:46 [只看该作者]

我新建了一个判断输入的是否为数值的类。代码如下:

class Check {
  private String str;
  public Check() {
  }

  public Check(String str) {
    this.str = str;
  }

  public boolean isDigital(String str) {
    for (int i = 0; i < str.length(); i++) {
      if (Character.isDigit(str.charAt(i)))
       return true;
      else
        return false;
    }
  }
}

编译时报错,说没有返回类型。我已经return了,不知道怎么回事!

图片点击可在新窗口打开查看

请老师帮忙看一下,谢谢!!

[此贴子已经被admin于2010-12-13 19:51:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  2楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1939 积分:26594 威望:0 精华:34 注册:2003/12/30 16:34:32
回复  发帖心情 Post By:2007/4/1 21:00:26 [只看该作者]

这是一种很常见的简单错误,因为你把return写在循环语句的条件判断语句中,计算机会认识这种return有可能不被执行,强行报错,你可以简单修改为:

  public boolean isDigital(String str)
  {
    for (int i = 0; i < str.length(); i++)
    {
      if (Character.isDigit(str.charAt(i)))
       return true;
      else
        return false;
    }
    return true;
  }

[此贴子已经被作者于2010-12-13 19:51:47编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
friday
  3楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:5 积分:447 威望:0 精华:0 注册:2006/9/14 11:00:35
  发帖心情 Post By:2007/4/2 22:45:42 [只看该作者]

我不明白的就是在这个当中返回值的问题,如果这样写的话不是就只返回true了吗?那这个该怎么判断str是否为数值啊?

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  4楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1939 积分:26594 威望:0 精华:34 注册:2003/12/30 16:34:32
回复  发帖心情 Post By:2007/4/4 7:56:57 [只看该作者]

我添加的那个“return true;”其实永远不会被执行,所以不会始终返回为真的,更好的写法为:

  public boolean isDigital(String str)
  {
    for (int i = 0; i < str.length(); i++)
    {
      if (Character.isDigit(str.charAt(i)))
       return true;
    }


    return false;
  }

[此贴子已经被作者于2010-12-13 19:52:01编辑过]

 回到顶部