我现在对此代码的主要关注是缺少return语句。
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));
}
System.out.println(finalstring);
}
public static void main(String[]args){
ReverseF("Hello");
}
}
使用此代码我只收到错误:
stringstuff.java:11: missing return statement
}
^
1 error
如果我切换System.out.println返回,我没有收到任何错误,但我也没有得到ReverseF的答案(“你好”);
答案 0 :(得分:5)
您有两种选择:写
public static void /* not String */ ReverseF(String n){
或在return finalString
中写下ReverseF
并使用
public static void main(String[]args){
System.out.println(ReverseF("Hello"));
}
答案 1 :(得分:0)
您收到编译错误“缺少return语句”,因为您的return语句丢失了......
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"));
}
}
您的方法是否需要返回值? 如果没有,只需将它从String更改为void,在您的方法中进行打印并将其重命名为“printReverseF”,以便您的方法名称表明它正在做什么!
其他反馈:
答案 2 :(得分:0)
让我们分解你的函数头中的关键字:
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
现在请注意,Java认为此函数将返回一个字符串。编译器检查是否存在正确类型的return语句。
使用void作为functio类型并在函数内部打印字符串(正如您现在所做),或者添加return语句并将打印移动到调用函数的位置(如已建议的那样) )。
HTH