JAVA help ;使用 while 循环构建一个由星号组成的单行字符串
JAVA help ;Use a while loop to build a string that is a single line consisting of asterisks
我正在研究的问题是:
使用 while 循环构建一个由星号组成的单行字符串。星号的个数由参数 numberOfStars 决定,不能为负数。 Return 字符串
我目前的代码是:
public String Question1(int numberOfStars) //cannot change this line
{
String str = "*";
while (numberOfStars > 0)
{numberOfStars--;
return str;}
}
错误eclipse给出:
此方法必须 return 类型为 String
的结果
谢谢,
首先,如果您使用标准代码格式(标准格式请参见下面的代码),您自己会更容易看到此编译错误。编译错误是因为如果永远不会进入 while 循环,您的函数将永远不会 return 值:
public String Question1(int numberOfStars) {
String str = "*";
while (numberOfStars > 0) {
numberOfStars--;
return str;
}
// compiler thinks: "what if the code gets here?"
// no String would be returned
}
是的,你说 numberOfStars
必须是非负数,但编译器不知道。此外,numberOfStars
可能为 0,在这种情况下仍不会进入循环。
为了解决编译错误,你需要在while循环外添加一个return语句,以防循环永远不会像这样进入:
public String Question1(int numberOfStars) {
String str = "*";
while (numberOfStars > 0) {
numberOfStars--;
return str;
}
return "";
}
现在,这个 "fixed" 代码仍然不会 return 一个包含指定数量星星的字符串,就像你想要的那样,但我会让你自己弄清楚这部分,因为它看起来你正在尝试学习编程。
我正在研究的问题是:
使用 while 循环构建一个由星号组成的单行字符串。星号的个数由参数 numberOfStars 决定,不能为负数。 Return 字符串
我目前的代码是:
public String Question1(int numberOfStars) //cannot change this line
{
String str = "*";
while (numberOfStars > 0)
{numberOfStars--;
return str;}
}
错误eclipse给出: 此方法必须 return 类型为 String
的结果谢谢,
首先,如果您使用标准代码格式(标准格式请参见下面的代码),您自己会更容易看到此编译错误。编译错误是因为如果永远不会进入 while 循环,您的函数将永远不会 return 值:
public String Question1(int numberOfStars) {
String str = "*";
while (numberOfStars > 0) {
numberOfStars--;
return str;
}
// compiler thinks: "what if the code gets here?"
// no String would be returned
}
是的,你说 numberOfStars
必须是非负数,但编译器不知道。此外,numberOfStars
可能为 0,在这种情况下仍不会进入循环。
为了解决编译错误,你需要在while循环外添加一个return语句,以防循环永远不会像这样进入:
public String Question1(int numberOfStars) {
String str = "*";
while (numberOfStars > 0) {
numberOfStars--;
return str;
}
return "";
}
现在,这个 "fixed" 代码仍然不会 return 一个包含指定数量星星的字符串,就像你想要的那样,但我会让你自己弄清楚这部分,因为它看起来你正在尝试学习编程。