【问题标题】:To use method from the main method java [closed]使用主要方法java中的方法[关闭]
【发布时间】:2017-10-19 23:16:47
【问题描述】:

这个问题非常适合我的问题,这就是我创建一个新问题的原因。这个程序中的第二种方法应该是创建一行数字1 2 3 4 5 6 7 8 9 10。我遇到的唯一问题是我不知道如何在 main 方法中打印出来。

public class Uppgift1_6a 
{
    public static void main(String[] args) 
    {
        for(int k = 0; k < 10; k++)
        {
            int tal = Numberline(k);
            System.out.print(tal);
        }
    }

    public static int Numberline(int tal1) 
    {
        int tal = 1;
        for(int i = 1; i < 11; i++)
        {
            tal = tal1 + i;
        }
        return tal;
    }
}

现在它会打印出从 11 到 19 的所有数字。如果我更改它,它只会打印出 10 或 11。

【问题讨论】:

  • 好吧。它正在执行此代码告诉它打印的内容。也许您应该首先自己澄清(然后告诉我们)您期望打印这段简单的代码究竟是什么。换句话说:提供minimal reproducible example
  • 从我的理解你想垂直打印的问题中使用 System.out.println(tal);或者如果你想要某种矩阵,那么可以使用列表列表或二维数组
  • 您可以将 Numberline 的代码替换为 return tal1 + 10; - 我会听取 GhostCat 的建议,并慢慢逐步检查您必须确定打印这些值的原因的代码。看起来您想将传递的值串在一起而不是将它们相加..
  • 正如我所说,我知道这段代码正在做我打印出来的事情,没有什么令人震惊的!但我希望能够从 main 方法命令它。我希望通过 main 方法中的命令打印出方法中的内容。我必须使用 Numberline 方法。
  • 这正是您的代码所做的,通过从主方法/程序入口点执行的命令打印出things

标签: java methods main


【解决方案1】:

仔细看代码:

public static int Numberline(int tal1)
{
    int tal = 1;
    for (int i = 1; i < 11; i++)
    {
        tal = tal1 + i;
    }
    return tal;
}

for 循环实际上什么都不做——你只是返回最终结果。最终结果总是完全等于tal1 + 10;同样,for 循环在这一点上所做的没有区别。 (我鼓励您使用调试器单步调试代码,以使自己相信这一事实)。

如果您希望它在您通过 for 循环时打印出值,您需要执行以下操作:

for (int i = 1; i < 11; i++)
{
    // You may need to modify this line too, depending on what values you want printed
    tal = tal1 + i;
    // Print the value here
    System.out.print(tal);
}

因为您编写它的方式只会打印出tal(您返回的那个)的final值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-04
    • 2018-02-20
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    相关资源
    最近更新 更多