gpt4 book ai didi

java - 如何在 for 循环中调用函数?

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:40 33 4
gpt4 key购买 nike

在最后一个方法中,我尝试在 for 循环内调用 printPattern ,但我不知道我做错了什么。我使用的是 BlueJ,所以我不确定 Eclipse 中的代码是否会有所不同。

这是程序:

public class recursion
{

private int count;

private String printPattern(int count, int itterations)
{
int i;
String line= "";

for(i=0; i <= count; i++)
{
if (i > itterations)
{
line = line + i;
}
else {line = line + "*";}
}
line = line + reverseLine(line);
return line;
}

private String reverseLine (String line)
{
int size;
String linerev = "";
for (int i = line.length() - 1; i >= 0; i--)
{
linerev= linerev + line.charAt(i);
}
return linerev;
}

private void addLineandReverse (int n)
{
int w= n;
//for loop
//calls function print pattern
//add itteration ++
//prints out
for (n= 9; n <= printPattern; n++)
{
System.out.println();
}
}
}

这是我希望程序输出的样子:

      123456789987654321
*2345678998765432*
**34567899876543**
***456789987654***
****5678998765****
*****67899876*****
******789987******
*******8998*******
********99********
******************

最佳答案

您正在使用该函数作为 for 循环停止条件的限制。但这似乎是错误的,因为我认为该函数不是为了返回条件的结果,而是返回一个字符串。

我不确定您想通过调用该函数来完成什么任务。以及为什么将 n 重新分配为 9。

无论哪种方式调用 printPattern 方法,您都必须使用以下语法:

printPattern(aNumber, anotherNumber)

可以工作的代码(但可能不会输出你想要的)是:

public void addLineandReverse (final int n)
{
//for loop
// calls function print pattern
// add itteration ++
//prints out
for (int i = 0; i <= n; ++n) {
System.out.println(printPattern(w, n));
}
}

好吧,我接受了您的要求并调整了您的代码,并尽可能接近您的设计(这不是我用来解决这个问题的设计,但它有效。

public class Recursion {

public static void main(String[] args) {
final Integer count = 9;
final Recursion recursion = new Recursion(count);
recursion.addLineAndReverse();
}

public Recursion(final Integer count) {
this.count = count;
}

private final int count;

public String printPattern(final int lineNumber) {

String line= "";

for(int i = 1; i <= count; ++i){
if (i >= lineNumber) {
line += i;
} else {
line += "*";
}
}
line += reverseLine(lineNumber);
return line;
}

public String reverseLine(final int lineNumber)
{

String line= "";

for(int i = count; i >= 1; --i){
if (i >= lineNumber) {
line += i;
} else {
line += "*";
}
}

return line;
}

public void addLineAndReverse(){
for (int i = 1; i <= count + 1; ++i){
System.out.println(printPattern(i));
}

}

}

关于java - 如何在 for 循环中调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26148967/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com