Java 程序不返回字符串

Java 程序不返回字符串,java,string,if-statement,for-loop,return,Java,String,If Statement,For Loop,Return,方法: 公共字符串getRowsOf3Stars(int行) 说明: 必修练习2)完成getRowsOf3Stars方法 将int(行)作为参数传递。该方法返回一个字符串 包含那个数量的三星行 比如说, getRowsOf3Stars(2)//返回“***\n***\n” 如果行数小于1,则返回空字符串。 例如: getRowsOf3Stars(2)//应返回“***\n***\n” 我写的是: 公共字符串getRowsOf3Stars(int行){ 字符串getRowsOf3Stars=

方法:

公共字符串getRowsOf3Stars(int行)
说明:

必修练习2)完成getRowsOf3Stars方法 将int(行)作为参数传递。该方法返回一个字符串 包含那个数量的三星行

比如说,

getRowsOf3Stars(2)//返回“***\n***\n”
如果行数小于1,则返回空字符串。 例如:

getRowsOf3Stars(2)//应返回“***\n***\n”
我写的是:

公共字符串getRowsOf3Stars(int行){
字符串getRowsOf3Stars=“***\n”;
if(行)此方法必须返回字符串类型的结果
有人能解释一下为什么我的程序不返回字符串吗?

更改此设置

for(int starRows=1;starRows<rows;starRows++){

return getRowsOf3Stars(starRows); //  your code here don't return any thing here.
for(int starRows=1;starRowsPut
return”“;
作为方法中消除错误的最后一行。它抱怨,因为由于您的条件,您返回的当前行可能永远不会被调用


例如,如果您提供一个参数rows=1,则返回将永远不会发生。

Java编译器将确保该方法返回字符串。 现在看看代码

1)
if(行=1)

然后它将转到for循环,编译器无法在编译时确定for循环是否执行,因为这是一种运行时机制。因此编译器无法确定for循环是否执行。 如果for循环不执行,您的方法将不会返回任何内容

现在,由于编译器必须确保应该有一个字符串返回,所以它显示了这个错误


因此,您可以做的是,在for循环之后的else子句中,您可以返回一个默认字符串作为
return”“;
或根据您的要求。

除了不返回字符串的问题之外,我看不出内部循环的原因,因为您在循环内部发出返回。我认为这将实现您想要的:

public String getRowsOf3Stars (int rows) {
String ROWOF3STARS = "***\n";
String returnString = "";

if (rows > 0){

    for(int starRows=1;starRows<rows;starRows++){
        returnString += ROWOF3STARS;
    }
}
return returnString;
}
公共字符串getRowsOf3Stars(int行){
字符串ROWOF3STARS=“***\n”;
字符串returnString=“”;
如果(行数>0){
对于(int starRows=1;starRows)