gpt4 book ai didi

java - 类似的代码,但有一个版本在应该返回字符串时却没有返回

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:31:48 26 4
gpt4 key购买 nike

为了类练习,我和我的 friend 都写了一段相似的代码。她的工作,而我的给出:

错误:此方法必须返回 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;
}
if ((int)(a.charAt(i)) > ((int)(b.charAt(i)))) {
return b;
}
}

return ("these are the same words") ;

}

我的代码:

//接受两个字符串并返回字母表中第一个字符串的方法

//alphaString("banana", "apple")--> "apple"

//alphaString("snake", "squirrel")--> "snake".

public static String alphaString(String s1, String s2) {


for (int i = 0; i<s1.length(); i++ ) {
if (s1.charAt(i)<s2.charAt(i)) {
return s1;
}
if (s1.charAt(i)>s2.charAt(i)){
return s2;

}


}

现在,我可以看出我们的变量命名不同,而且她使用 (int)(尽管我认为没有必要)。我不明白为什么她的代码有效而我的无效。如果我也尝试添加 (int) 并使代码更加相似,我仍然会收到错误消息。

有人知道为什么会这样吗?

最佳答案

您似乎缺少 默认 “这些是相同的词” 的返回。不清楚为什么你们都选择用循环来实现它(或者为什么你们都不选择使用 else)。无论如何,StringComparable 所以我会简单地做

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";
}

关于java - 类似的代码,但有一个版本在应该返回字符串时却没有返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53439919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com