Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类似的代码,但有一个版本在应该返回字符串时不返回字符串_Java_String_For Loop_Types_Alphabetical - Fatal编程技术网

Java 类似的代码,但有一个版本在应该返回字符串时不返回字符串

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;

在课堂练习中,我和我的朋友都编写了类似的代码。她的有效,而我的有效:

错误:此方法必须返回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(字符串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";
}