public String biDui (String c, String r) {
//把String类型转成int类型
int cc=Integer.parseInt(c);
int rr=Integer.parseInt(r);
if(cc>rr) {
System.out.println("大了");
}else if(cc<rr) {
System.out.println("小了");
}else{
return "对了";
}
}
报错内容是:This method must return a result of type String
//他让我非得在最后一行写一个返回值我不是在else后面写了吗,是我这个版本的问题吗,我这个是1.8的别的版本我也试了也报错。
//我现在不是说为了完成这个需求,而是想不明白else后面怎么就不能写return了。
这个报错的意思是函数必须返回一个字符串,虽然最后的else里面有返回字符串,但是前面两个分支里面却没有返回字符串,也就是说,如果程序走的是前面两个分支的话,是没有返回值的,这是错误的,可以这么改:
public String biDui (String c, String r) {
//把String类型转成int类型
int cc=Integer.parseInt(c);
int rr=Integer.parseInt(r);
if(cc>rr) {
System.out.println("大了");
return "大了";
}else if(cc<rr) {
System.out.println("小了");
return "小了";
}
else{
return "对了";
}
}
你的写法在编译时会报错,缺少返回语句,这是基本的语法格式(条件判断有返回语句,必须所有的情况都有返回),要注意!!!
当然你只想写一个返回语句,那这个返回语句就不要放在条件判断里面。
public String biDui (String c, String r) {
//把String类型转成int类型
int cc = Integer.parseInt(c);
int rr = Integer.parseInt(r);
if (cc > rr) {
System.out.println("大了");
return "错了";
} else if (cc < rr) {
System.out.println("小了");
return "错了";
} else {
return "对了";
}
}
若有帮助,谢谢采纳~
原因
三条判断分支
1、如果是前两条的话,会导致没有return 的返回数据,所以可以在末尾加上一个return 任意字符串;
2、如果是第三条的话,是正常的,有字符串的返回数据了
解决方法
在末尾加个return "没对"
即可。
public String biDui (String c, String r) {
//把String类型转成int类型
int cc = Integer.parseInt(c);
int rr = Integer.parseInt(r);
if (cc > rr) {
System.out.println("大了");
} else if (cc < rr) {
System.out.println("小了");
} else {
return "对了";
}
return "没对";
}
如下没有返回值,所以不对。给你做了改正
if(cc>rr) {
System.out.println("大了");
return "大了";
}else if(cc<rr) {
System.out.println("小了");
return "小了";
函数可能没有返回值,在最后return一个默认值就ok了。
可以的, 你在最后返回
return "错了";
就行了, 需要返回String类型
你定义了一个public String biDui公共类如图:
编译语法决定的,程序有几个出口,就对应几个return.
public String biDui (String c, String r) {
//把String类型转成int类型
int cc=Integer.parseInt(c);
int rr=Integer.parseInt(r);
if(cc>rr) {
System.out.println("大了");
return "错了";
}else if(cc<rr) {
System.out.println("小了");
return "错了";
}else {
return "对了";
}
}
public String biDui (String c, String r) {
//把String类型转成int类型
int cc=Integer.parseInt(c);
int rr=Integer.parseInt(r);
if(cc>rr) {
System.out.println("大了");
}else if(cc<rr) {
System.out.println("小了");
}else{
return "对了";
}
return “”;
}
这个写法,每个分支都需要有返回值才行。
else匹配的是上面的if语句,在else里面的返回,他只是局部的,而你的方法他本身是需要一个返回的语句
public String biDui (String c, String r) {
//把String类型转成int类型
int cc = Integer.parseInt(c);
int rr = Integer.parseInt(r);
if (cc > rr) {
System.out.println("大了");
} else if (cc < rr) {
System.out.println("小了");
} else {
return "对了";
}
return "没对";
}