java - 升序子字符串编译错误

我正在尝试创建一个程序,该程序从任何给定的数字输入中读取最长的升序子字符串。

(例如,输入=“43123”输出=“123”)

我已经完成了对循环的编辑,但是程序没有编译,并且在倒数第二个括号中一直提到“丢失的返回语句”。

我试过添加return asc;和打破;但似乎都行不通。

以下是我的代码:

import java.util.Scanner;        
public class Ascending{


    public static void main(String args[]){

        System.out.print("Enter a number = ");

        //scan the input
        Scanner in = new Scanner(System.in);
        String n = in.nextLine();

        //print solution
        System.out.println("output = " + itsAscending(n));


    }

    public static String itsAscending(String n) {

        int length = n.length();    

        for(int i = 0; i < length; i++) {

            char first = n.charAt(i);       
                char next = n.charAt(i+1);      
            int f = (int)(first - 48);       
            int nx = (int)(next - 48);      

            String asc;
            String works = ""; 

            if (f<nx) {

                works = works + n.substring(i, i+2);
                asc = works.substring(0, works.length()-1); 
                return asc;
            }

            else {

                works = works + "";
                asc = works.substring(i, works.length()-1); 
                return asc;
            }
        }
    }


}

最佳答案

@Ali Alamiri是正确的,如果n的长度为0,则永远不会进入for循环,因此不会有返回值。 @Ali Alamiri应该会得到答案的学分

https://stackoverflow.com/questions/15466736/

相关文章:

java - Play Framework CompilationException

qt - 无法运行编译qt应用程序。 Qt Creator忽略斜线

c++ - 无法解析的外部符号C++-错误的声明?

c++ - C++如何向minGW添加库

variables - 无法编译::I don't understand my errors. Mo

android - NDK错误: “can' t resolve `.data.rel.ro.loc

scala - 斯卡拉(Scala),卡斯巴(Casbah): MongoCollection.in

compiler-errors - 这怎么了? Submit.CommandText = SQL?

compiler-errors - 在NME中定位-演示项目无法转换为例如JavaScript-目标

sql - Qt QSql类错误