【问题标题】:Return loop value in java在java中返回循环值
【发布时间】:2018-08-08 02:24:25
【问题描述】:

如何在另一个类中显示循环值?

B 类

public class Runner {

    public static void main(String[] args) {
        WelcomePage welcome = new WelcomePage();
        String a = welcome.run();
        System.out.println("The output " + a);
    }
}

班级欢迎页面

public String run() {
        for (int i = 0; i < 100; i++) {
           return "Hello";
        }
         return "Hello";
    }

程序只显示Hello。如何显示多个Hello?

【问题讨论】:

  • 一个方法不能多次返回。如果您希望它打印多次,则必须从循环内部进行。
  • 在循环中使用System.out.println;使用StringBuilder 将循环中的值连接成一个String
  • 您需要将循环迭代的结果收集到 ArrayList 或 Set 之类的集合中并返回。然后你可以在你的调用代码中处理这些。我不认为你只是想显示它。如果您只想显示多个 Hello,请使用 StringBuilder 并在其中收集所有字符串,可能用空格分隔,然后返回以显示在您的调用代码中。

标签: java loops for-loop return


【解决方案1】:

Class B 只显示一个来自 WelcomePage 的 Hello,因为 run() 方法只被调用一次,并且当返回时,无论是否在循环中,都会返回值,然后移动到下一行代码方法调用。

正如其他答案所暗示的,您可以创建一个字符串并附加 Hello\n ,这将显示;

Hello
Hello
Hello

或者删除 \n 以在一行中打印 Hello。

我建议从 run() 方法中删除 for 循环并将其放在 B 类的 main 方法中,然后在 for 循环中调用 run 方法。

for(int i = 0; i < 100; i++){
    String a = welcome.run();
    System.out.println("The output " + a);
}

让 run() 方法只返回 Hello

public String run(){
    return "Hello";
}

【讨论】:

    【解决方案2】:
    for (int i = 0; i < 100; i++) {
       return "Hello";
    }
     return "Hello";
    

    函数每次执行都会返回一次。所以,最好的办法是把循环放在mail方法中。像这样。

    public class Runner {
    public static void main(String[] args) {
        WelcomePage welcome = new WelcomePage();
        for(int i=0;i<100;i++){
        String a = welcome.run();
        System.out.println("The output " + a);
       }}}
    

    然后从 run 方法返回 hello。

    public String run() {
         return "Hello";
    }
    

    【讨论】:

      【解决方案3】:

      您需要创建一个字符串并附加所有值,然后您可以像这样返回您的字符串:

      public String run() {
           StringBuilder sb = new StringBuilder();
              for (int i = 0; i < 100; i++) {
                 sb.append("Hello");
              }
               return sb.toString();
          }
      

      【讨论】:

      • str 中不需要的错误代码。只需返回 sb.toString()
      • thx,忘了声明String str,不过你说得对,没用
      猜你喜欢
      • 2016-09-03
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2012-05-26
      • 2015-11-09
      相关资源
      最近更新 更多