Rss & SiteMap

课外天地 李树青 http://www.njcie.com

李树青 论坛 南京 财经 课外天地
共4 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
friday 发表于: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编辑过]
2楼
admin 发表于: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编辑过]
3楼
friday 发表于:2007/4/2 22:45:42
我不明白的就是在这个当中返回值的问题,如果这样写的话不是就只返回true了吗?那这个该怎么判断str是否为数值啊?
4楼
admin 发表于: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编辑过]
共4 条记录, 每页显示 10 条, 页签: [1]

Copyright ©2002 - 2016 课外天地.Net
Powered By Dvbbs Version 8.3.0
Processed in .04688 s, 2 queries.