黑马程序员技术交流社区
标题:
关于return的应用问题?
[打印本页]
作者:
changchunhaha
时间:
2014-4-3 16:14
标题:
关于return的应用问题?
本帖最后由 changchunhaha 于 2014-4-3 16:29 编辑
import java.util.*;
class MapTest
{
public static void main(String[] args)
{
charCount("aacfededbabd");// 这个程序是打印出给定字符串中,每个字符出现的次数问题。
}
public static String charCount(String str)
{
char[] chs = str.toCharArray();
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
for(int x=0; x<chs.length; x++)
{
Integer value = tm.get(chs[x]);
if(value==null)
{
tm.put(chs[x],1);
}
else
{
value = value + 1;
tm.put(chs[x],value);
}
}
System.out.println(tm);
return null; //非常不明白这为什么要这么写?
}
}
复制代码
作者:
一年_Hei
时间:
2014-4-3 16:16
你返回值是字符串类型,不写就挂,你返回类型是void 就可以不写
作者:
H-Deka
时间:
2014-4-3 16:17
也可以不加return null; 这句话 。需要将public static String charCount(String str)改成 public static void charCount(String str)
作者:
Dijkstra
时间:
2014-4-3 18:02
这是取代void的没有返回值的方法
作者:
ok-Prince
时间:
2014-4-3 18:33
因为你这句代码 public static String charCount(String str)是需要返回一个String(字符串)的这么一个参数,既然有具体的参数需要返回,就必须有返回值。
作者:
NO?
时间:
2014-4-3 18:50
return null; //非常不明白这为什么要这么写?
} //答因为此方法需要一个String类型的返回值。如果不写的话,编译就不会通过。
//你的疑问是不是。明明已经有了答案还要返回值做什么吧?对其实这里的返回的null一点作用也没有。为了代码的健壮性,可以将代码的改成这样子。
import java.util.*;
class MapTest
{
public static void main(String[] args)
{
charCount("aacfededbabd");// 这个程序是打印出给定字符串中,每个字符出现的次数问题。
}
public static void charCount(String str)
{
char[] chs = str.toCharArray();
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
for(int x=0; x<chs.length; x++)
{
Integer value = tm.get(chs[x]);
if(value==null)
{
tm.put(chs[x],1);
}
else
{
value = value + 1;
tm.put(chs[x],value);
}
}
System.out.println(tm);
}
}
作者:
trhthyj
时间:
2014-4-4 14:58
函数charCount的返回值类型是String,最后必须有return,函数最终目的是打印tm,而不是返回String
作者:
zhangbingyuan
时间:
2014-4-4 15:38
哎呦 基本常识啊 因为你的charCount函数的返回值是String啊,这里你将你的程序运行结果通过System.out.println();语句打印到控制台了。所以没什么必要返回什么,所以就用返回null来防止发生编译错误。如果把函数返回值改为void,那就不用写了。
如果你要进行其他的操作,比如输出这个字符串中出现次数最多的那个字符ch,那么就将函数返回值设置为char,并返回该字符,这时要用到return ch; 都是一个道理。 也就是说如果你需要函数的运行结果的话就将该结果用return返回,并把函数的返回值类型改为相应的类型。如果只是打印出运算结果的话,那就将函数的返回值类型设置为void,这样就不用return语句了。 希望可以帮到 你。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2