JAVA: missing return statement

前端 未结 3 1999
旧时难觅i
旧时难觅i 2020-12-22 09:17

my main concern with this code as of right now is a missing return statement.

public class stringstuff{

    //using charAt    
    public static String Rev         


        
相关标签:
3条回答
  • 2020-12-22 09:44

    You have two options: either write

    public static void /* not String */ ReverseF(String n){
    

    or write return finalString in ReverseF and use

    public static void main(String[]args){
      System.out.println(ReverseF("Hello"));
    }
    
    0 讨论(0)
  • 2020-12-22 09:44

    You get an compilation error "missing return statement" because your return statement is missing...

    public class Stringstuff {
    
        // using charAt
        public static String reverseF(String n) {
            String finalstring = "";
            int len = n.length();
            for (int i = 0; i < n.length(); i++) {
                finalstring += n.charAt(len - i - 1);
            }
    
            return finalstring;
        }
    
        public static void main(String[] args) {
            System.out.println(reverseF("Hello"));
        }
    }
    

    Is it necessary that your method is returning a value? If not, just change it from String to void, do the printing in your method and rename it to something like "printReverseF", so that your method name indicate what it's doing!

    Other feedback:

    • start method names with lowercase, so you can distinct them from Classes
    • for concatenation of Strings in loops, you should use a StringBuilder/StringBuffer. Then Java doesn't have to create new String-objects per iteration of your loop - this could be a huge performance problem!
    0 讨论(0)
  • 2020-12-22 09:52

    Let's break down the keywords in your function header:

    Public - Any function has access to this function
    Static - This function does not operate on object instance variables and does not require an instance of this object to be created before it can be used
    String - this function will return a String
    ..name.. - the name of the function
    (params) - input for your function
    

    Now note that Java thinks this function will return a string. The compiler checks to see if there is a return statement of the proper type.

    Either use a void as the functio type and print the string inside of the function (as you' re doing now), or add the return statement and move the print to the place where the function is called from (as already suggested).

    HTH

    0 讨论(0)
提交回复
热议问题