【问题标题】:What do I have to put as return?我必须把什么作为回报?
【发布时间】:2018-10-12 18:09:31
【问题描述】:

我刚开始学习 Java。任务是创建一个从用户给定的值向上计数的方法。增加率和结束值也由用户给出。由于我真的不知道如何制定它,这里是一个例子:

例子:

输入:起始值(1),增加(2),结束值(10

输出:

1,3,5,7,9

我必须输入什么作为返回,以便该类显示它计数的所有数字(如上面的示例)?

import java.util.Scanner;
public class ForSchleifeÜbungen2 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("Bitte Startwert eingeben:");
        long Startwert = sc.nextLong();

        System.out.println("Bitte Schrittweite eingeben:");
        long Schrittweite = sc.nextLong();

        System.out.println("Bitte Endwert eingeben:");
        long Endwert = sc.nextLong();   

        System.out.println("Ihr Startwert: " + Startwert);
        System.out.println("Ihr Schrittweite: " + Schrittweite);
        System.out.println("Ihr Endwert: " + Endwert);

        System.out.println(Schrittzähler(Startwert, Schrittweite, Endwert));


        }



    public static long Schrittzähler (long Startwert, long Schrittweite, long Endwert) {

        long Zähler;

        for(long i = Startwert; i <= Endwert; i = i + Schrittweite) {
                    System.out.println(i);
        }

        long Zähler;

    }


}

【问题讨论】:

  • 你能用英语解释一下这个方法应该做什么以及它应该返回什么吗?该方法似乎不需要返回任何内容,因此我会重视返回类型void,而不是尝试打印它,因为它已经打印了。
  • 不打印数字,只需将它们添加到字符串中,然后返回字符串。另外,long Zähler; 什么也没做,你放了 2 次。

标签: java methods counter


【解决方案1】:

你已经做到了,在这里稍作修改。你不需要返回,因为你的要求只是打印数字,所以替换这个

System.out.println(Schrittzähler(Startwert, Schrittweite, Endwert));

Schrittzähler(Startwert, Schrittweite, Endwert)


并更改方法的签名如下并删除long Zähler;这是不必要的

   public static void Schrittzähler (long Startwert, long Schrittweite, long Endwert) {

        for(long i = Startwert; i <= Endwert; i = i + Schrittweite) {
                    System.out.println(i + ",");
        }

    }

输入:

1, 2, 10

输出:

1,3,5,7,9,

【讨论】:

  • 谢谢,这正是我想要的。
【解决方案2】:

创建一个叫 sum 的变量,并给它一个初始值 0

long sum = 0; // I guess this is Zähler

在每次迭代中,将当前的 i 值添加到总和中,例如:

sum = sum + i; // alternatively sum += i;

Schrittzähler 方法结束时返回总和。

提示:按照惯例,所有 Java 变量都以小写字母(不是大写字母)开头的驼峰式书写。这同样适用于方法和字段等类成员。 Java doc

【讨论】:

  • 初始值有什么任意
  • @khelwood 我的英语并不比 OP 的好 :)
  • 好的。那么 sum 变量的初始值必须为零才能得到正确的答案。所以这不是任意的。
  • 我已将其编辑为中性,因为我的意思是初始值不应该有任何副作用。在求和的情况下为 0 ,但在乘法中,例如中性为 1。
【解决方案3】:

使用 StringBuilder 对象构建要显示的数字字符串。我冒昧地将方法、变量和参数名称更改为以小写开头。

public static String schrittzähler(long startwert, long schrittweite, long endwert) {
    StringBuilder builder = new StringBuilder(Long.toString(startwert));
    for(long i = startwert + schrittweite; i <= endwert; i = i + schrittweite) {
        builder.append(", ");
        builder.append(i);
    }

    return builder.toString();
}

【讨论】:

    【解决方案4】:

    这可以做得更有说服力,但是,我相信你正在寻找这样的东西。如果您需要更多帮助,请告诉我!下面的代码应该是你作为一个新的 Java 程序员所理解的所有东西。这就是我选择这个解决方案的原因。

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println(returnNums(1,2,10));
    
      }
      public static String returnNums(int startNum, int increaseByNum, int endNum){
    	  
         String loopedNums = Integer.toString(startNum);
    
         while((startNum+increaseByNum) < endNum) {
    
               startNum = startNum + increaseByNum;
    	   loopedNums += Integer.toString(startNum)+"";
    		   
          }
          return loopedNums;
       }
    }

    【讨论】:

      猜你喜欢
      • 2016-01-27
      • 2012-10-30
      • 1970-01-01
      • 2023-01-24
      • 2022-06-15
      • 2016-04-05
      • 2015-02-04
      • 2015-04-04
      • 2011-01-28
      相关资源
      最近更新 更多