Java 类似的代码,但有一个版本在应该返回字符串时不返回字符串
在课堂练习中,我和我的朋友都编写了类似的代码。她的有效,而我的有效: 错误:此方法必须返回java.lang.String类型的结果 她的密码是:Java 类似的代码,但有一个版本在应该返回字符串时不返回字符串,java,string,for-loop,types,alphabetical,Java,String,For Loop,Types,Alphabetical,在课堂练习中,我和我的朋友都编写了类似的代码。她的有效,而我的有效: 错误:此方法必须返回java.lang.String类型的结果 她的密码是: public static String alphaString (String a, String b) { for (int i=0; i<a.length(); i++){ if ((int)(a.charAt(i)) < ((int)(b.charAt(i)))) { return a;
public static String alphaString (String a, String b) {
for (int i=0; i<a.length(); i++){
if ((int)(a.charAt(i)) < ((int)(b.charAt(i)))) {
return a;
}
if ((int)(a.charAt(i)) > ((int)(b.charAt(i)))) {
return b;
}
}
return ("these are the same words") ;
}
公共静态字符串alphaString(字符串a、字符串b){
对于(int i=0;i((int)(b.charAt(i)){
返回b;
}
}
return(“这些词是相同的”);
}
我的代码:
//方法,该方法接受两个字符串并返回字母表中第一个字符串
//字母串(“香蕉”、“苹果”)-->“苹果”
//字母串(“蛇”、“松鼠”)-->“蛇”
公共静态字符串alphaString(字符串s1、字符串s2){
对于(int i=0;i您似乎缺少默认返回的“这是相同的单词”
。不清楚为什么您两人都选择使用循环来实现这一点(或者为什么两人都不选择使用else
)。不管怎样,字符串
是可比的,所以我只想这么做
public static String alphaString(String s1, String s2) {
int c = s1.compareTo(s2);
if (c < 0) {
return s1;
} else if (c > 0) {
return s2;
}
return "these are the same words";
}
公共静态字符串alphaString(字符串s1、字符串s2){
int c=s1。与(s2)相比;
if(c<0){
返回s1;
}如果(c>0),则为else{
返回s2;
}
return“这些是相同的单词”;
}
她的方法的最后一条语句是什么?你的方法的最后一条语句是什么?有什么区别吗?如果第一个字符串为空(长度为0),她的方法会返回什么?你的方法会返回什么?@David mine不会因为错误而返回任何内容,而她的方法会返回“这是相同的单词”@Patricia Manarazan:“我的方法根本不会返回任何内容”-这就是错误所在。编译器必须确保该方法始终返回播发类型。存在一个逻辑条件,在该条件下,您的方法不会返回任何内容,这是无效的。@camickr hers:return(“这些是相同的词”);我的:return s2;我们使用了一个循环,因为这是老师给我们的方向,我们没有看到s1。与(s2)在课堂上正式比较,所以我们不被允许。当我添加:return“这是相同的单词";对于我原来的方法,我可以让它编译,它确实返回一个字符串,但我不明白为什么。该语句如何影响其余语句?为什么它的缺失会导致错误?该方法声明它返回一个字符串,因此,该方法的每一个可能的出口都必须返回一个字符串。如果两个if条件都为如果将valuate设置为false,则不存在返回语句。因此,方法可能存在不返回字符串的退出,这就是编译错误的原因。
public static String alphaString(String s1, String s2) {
int c = s1.compareTo(s2);
if (c < 0) {
return s1;
} else if (c > 0) {
return s2;
}
return "these are the same words";
}