使用if语句返回没有数组的正确“返回”的for循环方法?

时间:2013-12-25 15:41:38

标签: java loops methods return

我正在做一些java练习,我正在尝试创建一个计数为100的方法,并在每次for循环“循环”时打印该数字。
例外的是,当数字可被3整除时,它将打印“Fizz”,当数字可被5整除时,它将打印“Buzz”。 现在,我的方法中有三种返回类型,它将返回一个String。但是,错误说我没有返回值。我知道我必须让它在for循环之外返回一个String,但是我在弄清楚如何返回我想要的值时遇到了一些麻烦。
我也知道我可以使用数组甚至是arrayList来解决这个问题,但我认为没有它可能,我想尝试这样做。

非常感谢任何帮助!

这是代码:

package etcOvaningar;

public class ovning1 {

    public static String fizz ="Fizz!";
    public static String buzz ="Buzz!";

    public static String countDown(){
    for (int number = 0; number < 100; number++){
        if (number%3 == 0){
            return fizz;
        }
        else if (number%5 == 0){
            return buzz;
        }
        else
            return String.valueOf(number);
    }
           //I need to insert a return here I suppose, but I want the correct return from the if and else //statements
    }

    public static void main(String[] args){
    }
}

3 个答案:

答案 0 :(得分:7)

不要在循环中“返回”,而是打印。返回时,方法退出,循环不再循环。如果只是打印必要的文本,for循环将继续循环,直到达到其自然结束条件。

public static void countDown(){
  for (int number = 0; number < 100; number++){
    if (number % (3*5) == 0) {
        System.out.println("fizzbuzz");
    } else 
    if (number % 3 == 0){
        System.out.println("fizz");
    } else
    if (number % 5 == 0){
        System.out.println("buzz");
    }
  }
}

请注意,根据Martin Dinov,应声明此方法返回void,不返回任何内容。

答案 1 :(得分:2)

您的代码将无法编译,因为方法倒计时需要在for循环下面返回值。

然而,无论你返回的值是什么,你放在for循环下都无关紧要,因为你的倒计时方法总会返回“Fizz!”

答案 2 :(得分:1)

这是做你想做的另一种方式。也许,更多你应该做的事情。

private static String fizz ="Fizz!";
private static String buzz ="Buzz!";    

public static void main(String[] args){
    for (int number = 0; number < 100; number++){
        String word = checkNumber(number);
        System.out.println(word);
    }
}

private static String checkNumber(int number){
    String value = "";
    if (number%3 == 0){
        value += fizz;
    }
    if (number%5 == 0){
        value += buzz;
    }
    if (value.isEmpty()) {
        value = String.valueOf(number);
    }
    return value;
}

注意事项:

  • private开始您的方法和字段,并在您进一步开发程序和需求变更时升级其可见性。这有助于保持代码清洁和曝光最小化。

  • 尽量不要在方法中使用print语句(除非它们专门用于打印消息)。他们应该接受输入,处理输入并返回输出。没什么,没什么。

  • 了解if / else if / elseif / if / if之间的区别。数字15可以被3和5整除。